sql >> Databasteknik >  >> RDS >> PostgreSQL

Exporterar data som innehåller radflöden som CSV från PostgreSQL

För att du ska kunna exportera filen till en annan server har du två alternativ:

  • Skapa en delad mapp mellan de två servrarna, så att databasen också har åtkomst till denna katalog.

COPY (SELECT field1,field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;

  • Utlöser exporten från målservern med STDOUT av COPY . Använder psql du kan uppnå detta genom att köra följande kommando:

psql yourdb -c "COPY (SELECT * FROM your_table) TO STDOUT" > output.csv

REDIGERA :Löser problemet med fält som innehåller radmatningar (\n )

Om du vill bli av med radflödena, använd REPLACE funktion.

Exempel:

 SELECT E'foo\nbar';
 ?column? 
----------
 foo     +
 bar
(1 Zeile)

Ta bort radmatningen:

SELECT REPLACE(E'foo\nbaar',E'\n','');
 replace 
---------
 foobaar
(1 Zeile)

Så din COPY ska se ut så här:

COPY (SELECT field1,REPLACE(field2,E'\n','') AS field2 FROM your_table) TO '[shared directory]' DELIMITER ',' CSV HEADER;


  1. PostgreSQL-delsträng får sträng mellan parenteser

  2. Postgres på kommandoraden med extern editor kör inte fråga

  3. SQL Server:Fråga snabbt, men långsam från proceduren

  4. Hur man inaktiverar Change Data Capture (CDC) på en databas i SQL Server - SQL Server Tutorial