Eso no es posible con SQL COPY
dominio. COPY
solo copias de un archivo o STDIN .
Puede escribir el contenido de la variable en un archivo o canalizarlo a través de STDIN. Solo tiene sentido para más de un par de filas.
Creo que no entendí bien tu pregunta antes de la actualización, probablemente no necesites esto:
La ruta del archivo no se puede intercambiar como otros elementos de datos, y no puede usar una declaración preparada para eso. Construir el todo declaración antes de ejecutar o recurrir a SQL dinámico con una función del lado del servidor como:
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;
Llamar:
SELECT f_cp('/var/lib/postgres/sync/myfile.csv')
format()
requiere Postgres 9.1 o posterior.