For at du kan eksportere filen til en anden server, har du to muligheder:
- Oprettelse af en delt mappe mellem de to servere, så databasen også har adgang til denne mappe.
COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;
- Udløser eksporten fra målserveren ved hjælp af
STDOUT
afCOPY
. Brug afpsql
du kan opnå dette ved at køre følgende kommando:
psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv
REDIGER :Løsning af problemet med felter, der indeholder linjefeeds (\n
)
Hvis du vil slippe af med linjefeeds, skal du bruge REPLACE
funktion.
Eksempel:
SELECT E'foo\nbar';
?column?
----------
foo +
bar
(1 Zeile)
Fjernelse af linjeskift:
SELECT REPLACE(E'foo\nbaar',E'\n','');
replace
---------
foobaar
(1 Zeile)
Så din COPY
skal se sådan ud:
COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;