За да експортирате файла в друг сървър, имате две опции:
- Създаване на споделена папка между двата сървъра, така че базата данни също да има достъп до тази директория.
COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;
- Задействане на експортирането от целевия сървър чрез
STDOUT
отCOPY
. Използване наpsql
можете да постигнете това чрез следната команда:
psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv
РЕДАКТИРАНЕ :Справяне с проблема с полета, съдържащи канали за редове (\n
)
В случай, че искате да се отървете от редовете, използвайте REPLACE
функция.
Пример:
SELECT E'foo\nbar';
?column?
----------
foo +
bar
(1 Zeile)
Премахване на подаването на ред:
SELECT REPLACE(E'foo\nbaar',E'\n','');
replace
---------
foobaar
(1 Zeile)
Така че вашето COPY
трябва да изглежда така:
COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;