我正在將一些客戶端的東西遷移到服務器中,並且希望將其放入函數中。Postgres PL/pgSQL函數結果到文件,文件名爲參數
我需要將查詢結果轉換爲CSV文件。但是,我想將結果文件的文件名/位置作爲函數的參數傳遞。
所以,這是什麼,我想做一個簡單的例子:
CREATE FUNCTION send_email_results(filename1 varchar) RETURNS void AS $$
DECLARE
BEGIN
COPY(SELECT * FROM mytable) TO filename1 WITH CSV;
END;
$$ LANGUAGE plpgsql;
Postgres的抱怨這個,雖然,因爲它是翻譯的文件名1參數「$ 1」,它不知道該怎麼辦。
如果需要,我可以對路徑進行硬編碼,但能夠將其作爲參數傳遞,肯定會得心應手。
任何人都有任何線索?
公平起見,我想在一個函數中做這件事的原因是我需要導出到函數內的多個文件。所以想象需要傳遞2或3個不同的文件名作爲參數,並在該函數內導出幾個不同的查詢。如果我不需要導出多個查詢,那麼我可以簡單地輸出輸出。 – jasonmclose
在你的函數中使用EXECUTE'你的查詢'。 –
[動態文件名複製]的可能重複(http://stackoverflow.com/questions/16019508/copy-with-dynamic-file-name) –