Om het bestand naar een andere server te exporteren heeft u twee opties:
- Een gedeelde map maken tussen de twee servers, zodat de database ook toegang heeft tot deze map.
COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;
- De export van de doelserver activeren met behulp van de
STDOUT
vanCOPY
.psql
gebruiken u kunt dit bereiken door de volgende opdracht te gebruiken:
psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv
BEWERKEN :Het probleem aanpakken van velden die regelinvoer bevatten (\n
)
Als je van de regelfeeds af wilt, gebruik dan de REPLACE
functie.
Voorbeeld:
SELECT E'foo\nbar';
?column?
----------
foo +
bar
(1 Zeile)
De regelinvoer verwijderen:
SELECT REPLACE(E'foo\nbaar',E'\n','');
replace
---------
foobaar
(1 Zeile)
Dus uw COPY
zou er als volgt uit moeten zien:
COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;