En realidad, no puede ejecutar \copy a través de pg_query() . No es un comando SQL . Es un meta-comando del psql cliente.
Allí puedes ejecutar:
\copy data1 FROM 'data1.txt' WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'
O ejecute el comando de shell:
psql mydb -c "\copy data1 FROM 'data1.txt'
WITH CSV HEADER DELIMITER AS ',' QUOTE AS '^'"
Tenga en cuenta las citas. Los valores deben estar entre comillas simples en PostgreSQL:'value' .
Las comillas dobles son para identificadores, y solo se necesitan para identificadores con mayúsculas o caracteres ilegales o para palabras reservadas:"My table" .