Vous n'êtes pas identifié(e).

#1 14/09/2012 12:40:46

marcandre
Membre

exportation dans un fichier CSV à partir de plusieurs tables (COPY)

Bonjour à tous,

Je voudrais savoir est-ce qu'il est possible de copier des données à partir de plusieurs tables en jointure vers un seul fichier CSV ?

Si oui, serait t-il possible d'avoir la syntax exacte du code ?

En vous remerciant d'avance .

Cordialement .

Hors ligne

#2 14/09/2012 14:07:52

gleu
Administrateur

Re : exportation dans un fichier CSV à partir de plusieurs tables (COPY)

La commande COPY doit le faire :

COPY (requête) TO 'fichier' CSV;

Attention que le fichier sera local au serveur. Voir http://docs.postgresql.fr/9.2/sql-copy.html pour les détails.


Guillaume.

Hors ligne

#3 14/09/2012 16:00:22

marcandre
Membre

Re : exportation dans un fichier CSV à partir de plusieurs tables (COPY)

Merci pour ces informations, je vais l'essayer .

Hors ligne

#4 17/09/2012 11:26:41

jpargudo
Administrateur

Re : exportation dans un fichier CSV à partir de plusieurs tables (COPY)

Bonjour marcandre,

Pour ma part, je préfère faire appel à l'utilitaire "psql" pour faire des extractions de données dans un fichier plutôt que d'utiliser l'ordre SQL COPY.

La raison est simple: lorsque vous utilisez COPY comme l'a conseillé justement Guillaume ci-dessus, vous devez le faire dans un cadre très strict. En effet "fichier" devra être situé où l'utilisateur "postgres" à qui appartient les processus de PostgreSQL a accès.

Si vous voulez vous affranchir de ces problèmes de droit, alors, faites le avec votre utilisateur traditionnel, en utilisant toujours copy, mais celui de psql comme suit:

$ psql -c "\copy (select ...) to 'fichier' CSV;" mabase

Où "mabase" est votre base de données, et où j'ai supposé que l'utilisateur courant du système y avait accès, via la boucle locale.

Voilà pour cette petite astuce, toute bête mais bien pratique !


Bien à vous,

Hors ligne

Pied de page des forums