Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#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