In realtà, non puoi eseguire \copy tramite pg_query() . Non è non un comando SQL . È un meta-comando di psql cliente.
Lì puoi eseguire:
\copy data1 FROM 'data1.txt' WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'
Oppure esegui il comando shell:
psql mydb -c "\copy data1 FROM 'data1.txt'
WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'"
Nota le citazioni. I valori devono essere virgolette singoli in PostgreSQL:'value' .
Le virgolette doppie servono per gli identificatori e sono effettivamente necessarie solo per gli identificatori con lettere maiuscole o non valide o per le parole riservate:"My table" .