Vous n'êtes pas identifié(e).
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
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
Merci pour ces informations, je vais l'essayer .
Hors ligne
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,
Jean-Paul Argudo
https://www.postgresql.fr
https://www.crunchydata.com
Hors ligne