PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Exportation de données contenant des sauts de ligne au format CSV à partir de PostgreSQL

Pour exporter le fichier sur un autre serveur, vous avez deux options :

  • Création d'un dossier partagé entre les deux serveurs, afin que la base de données ait également accès à ce répertoire.

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

  • Déclenchement de l'export depuis le serveur cible à l'aide de STDOUT deCOPY . Utilisation de psql vous pouvez y parvenir en exécutant la commande suivante :

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

MODIFIER  :Résolution du problème des champs contenant des sauts de ligne (\n )

Si vous voulez vous débarrasser des sauts de ligne, utilisez le REPLACE fonction.

Exemple :

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

Suppression du saut de ligne :

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

Donc votre COPY devrait ressembler à ceci :

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