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 depsql
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;