sql >> Database teknologi >  >> RDS >> PostgreSQL

Eksport af data, der indeholder linjefeeds som CSV fra PostgreSQL

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 af psql 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;
 


  1. Eventuelle ulemper ved bitflag i databasekolonner?

  2. Aktiver MySQL InnoDB Storage Engine Support i XAMPP-installation

  3. Hvordan kan jeg lave en FØR OPDATERET trigger med sql server?

  4. postgresql:INSERT INTO ... (VÆLG * ...)