Aby wyeksportować plik na inny serwer, masz dwie opcje:
- Tworzenie współdzielonego folderu między dwoma serwerami, tak aby baza danych miała również dostęp do tego katalogu.
COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;
- Uruchamianie eksportu z serwera docelowego przy użyciu
STDOUT
zCOPY
. Korzystanie zpsql
możesz to osiągnąć, wykonując następujące polecenie:
psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv
EDYTUJ :Rozwiązanie problemu pól zawierających znaki końca linii (\n
)
Jeśli chcesz pozbyć się wyskakujących wierszy, użyj REPLACE
funkcja.
Przykład:
SELECT E'foo\nbar';
?column?
----------
foo +
bar
(1 Zeile)
Usuwanie wysuwu wiersza:
SELECT REPLACE(E'foo\nbaar',E'\n','');
replace
---------
foobaar
(1 Zeile)
Więc twoja COPY
powinien wyglądać tak:
COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;