Dat is niet mogelijk met de SQL COPY
opdracht. COPY
kopieert alleen van een bestand of STDIN .
U kunt de inhoud van de variabele naar een bestand schrijven of deze via STDIN pipen. Heeft alleen zin voor meer dan een paar rijen.
Ik denk dat ik je vraag voor de update verkeerd heb begrepen, je hebt dit waarschijnlijk niet nodig:
Het bestandspad kan niet worden uitgewisseld zoals andere gegevensitems, en u kunt daarvoor geen voorbereide verklaring gebruiken. Bouw het geheel statement alvorens uit te voeren of toevlucht te nemen tot dynamische SQL met een server-side functie zoals:
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;
Bel:
SELECT f_cp('/var/lib/postgres/sync/myfile.csv')
format()
vereist Postgres 9.1 of hoger.