[英]How do I send in parameters in COPY TO-query in node-postgres
我正在執行查詢以將結果導出到ubuntu服務器上運行的postgres中的CSV。
該查詢從Node-API調用,該API通過node-postgres-driver( https://node-postgres.com/ )連接到Postgres。
查詢如下所示:
var sqlText =
'Copy (SELECT company.name AS Company, SUM(sale.numbersold) AS NumberSold
FROM SALE LEFT JOIN company ON company.companyid = sale.companyid
WHERE sale.createdate BETWEEN $1 AND $2 GROUP BY company.name)
To \'/tmp/test.csv\' With CSV HEADER DELIMITER \',\'';
每當我嘗試將此查詢與參數一起使用時,都會收到一個異常,即postgres預期為0個參數,並得到2個。如何將參數發送到這樣的查詢中?
如果我使用這樣的靜態文本查詢,它將起作用:
var sqlText = 'Copy (SELECT company.name AS Company, SUM(sale.numbersold) AS NumberSold
FROM SALE LEFT JOIN company ON company.companyid = sale.companyid
WHERE sale.createdate BETWEEN \'2018-01-01\' AND \'2018-01-01\'
GROUP BY company.name)
To \'/tmp/test.csv\' With CSV HEADER DELIMITER \',\'';
節點中的代碼:
var params = ['2018-01-01', '2018-01-28']
let dbResult;
try {
dbResult = await GetStuff(sqlText, params);
} catch (err) {
}
COPY
是一個實用程序語句,因此不支持參數化執行。
要么將參數注入客戶端,要么(如果您不願意)將參數注入服務器端,並在函數中實現動態SQL。
動態COPY語句中的Use function variable中顯示了一個示例。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.