Itu tidak mungkin dengan SQL COPY
memerintah. COPY
hanya salinan dari file atau STDIN .
Anda dapat menulis konten variabel ke file atau menyalurkannya melalui STDIN. Masuk akal untuk lebih dari beberapa baris.
Saya pikir saya salah memahami pertanyaan Anda sebelum pembaruan, Anda mungkin tidak membutuhkan ini:
Jalur file tidak dapat ditukar seperti item data lainnya, dan Anda tidak dapat menggunakan pernyataan yang disiapkan untuk itu. Bangun keseluruhan pernyataan sebelum mengeksekusi atau menggunakan SQL dinamis dengan fungsi sisi server seperti:
CREATE OR REPLACE FUNCTION f_cp(_file text)
RETURNS void AS
$BODY$
BEGIN
EXECUTE format($$COPY zip_codes FROM %L DELIMITER ',' CSV$$, $1);
END
$BODY$
LANGUAGE plpgsql;
Telepon:
SELECT f_cp('/var/lib/postgres/sync/myfile.csv')
format()
membutuhkan Postgres 9.1 atau lebih baru.