sql >> Databáze >  >> RDS >> PostgreSQL

Export dat obsahujících řádkové kanály jako CSV z PostgreSQL

Abyste mohli exportovat soubor na jiný server, máte dvě možnosti:

  • Vytvoření sdílené složky mezi dvěma servery, aby do tohoto adresáře měla přístup i databáze.

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

  • Spuštění exportu z cílového serveru pomocí STDOUT z COPY . Pomocí psql můžete toho dosáhnout spuštěním následujícího příkazu:

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

UPRAVIT :Řešení problému s poli obsahujícími odřádkování (\n )

V případě, že se chcete zbavit odřádkování, použijte REPLACE funkce.

Příklad:

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

Odebrání posunu řádku:

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

Takže vaše COPY by měl vypadat takto:

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


  1. Jak vložíte velké bloby do Oracle 10G pomocí System.Data.OracleClient?

  2. Alternativa k návrhu databáze s výčtovými sloupci, což vede ke špatnému výkonu

  3. Problémy s časovým pásmem u PHP a MySQL

  4. VYBERTE a uzamkněte řádek a poté UPDATE