Това не е възможно с SQL COPY
команда. COPY
само копия от файл или STDIN .
Можете или да запишете съдържанието на променливата във файл или да го изпратите чрез STDIN. Има смисъл само за повече от няколко реда.
Мисля, че разбрах погрешно въпроса ви преди актуализацията, вероятно нямате нужда от това:
Пътят на файла не може да се обменя като други елементи от данни и не можете да използвате подготвен оператор за това. Изградете цялото изявление преди изпълнение или прибягвайте до динамичен SQL с функция от страна на сървъра като:
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;
Обадете се:
SELECT f_cp('/var/lib/postgres/sync/myfile.csv')
format()
изисква Postgres 9.1 или по-нова версия.