Det är inte möjligt med SQL COPY
kommando. COPY
endast kopior från en fil eller STDIN .
Du kan antingen skriva innehållet i variabeln till en fil eller skicka den via STDIN. Det är bara meningsfullt för mer än ett par rader.
Jag tror att jag missförstod din fråga innan uppdateringen, du behöver förmodligen inte detta:
Filsökvägen kan inte utbytas som andra dataobjekt, och du kan inte använda en förberedd sats för det. Bygg helheten sats innan du kör eller tillgriper dynamisk SQL med en funktion på serversidan som:
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;
Ring:
SELECT f_cp('/var/lib/postgres/sync/myfile.csv')
format()
kräver Postgres 9.1 eller senare.