Um die Datei auf einen anderen Server zu exportieren, haben Sie zwei Möglichkeiten:
- Erstellen eines gemeinsamen Ordners zwischen den beiden Servern, damit die Datenbank auch Zugriff auf dieses Verzeichnis hat.
COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;
- Triggern des Exports vom Zielserver über
STDOUT
vonCOPY
. Verwenden vonpsql
Sie können dies erreichen, indem Sie den folgenden Befehl ausführen:
psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv
BEARBEITEN :Behebung des Problems von Feldern mit Zeilenvorschüben (\n
)
Falls Sie die Zeilenvorschübe loswerden wollen, verwenden Sie den REPLACE
Funktion.
Beispiel:
SELECT E'foo\nbar';
?column?
----------
foo +
bar
(1 Zeile)
Zeilenvorschub entfernen:
SELECT REPLACE(E'foo\nbaar',E'\n','');
replace
---------
foobaar
(1 Zeile)
Also Ihre COPY
sollte so aussehen:
COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;