PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

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

#1 20/02/2011 22:30:43

catindri
Membre

COPY et superutilisateur

Bonjour,
je débute en postgres, je cherche à copier dans une table un fichier csv,

COPY test (Nomtaxon, Niveau)
    FROM 'home/machin/BaseDonnee/PostGres/Checklist.csv'
    CSV ;

mais j'ai ce message en retour


ERREUR:  doit être super-utilisateur pour utiliser COPY à partir ou vers un fichier
ASTUCE : Tout le monde peut utiliser COPY vers stdout ou à partir de stdin.
La commande \copy de psql fonctionne aussi pour tout le monde.

********** Erreur **********

ERREUR: doit être super-utilisateur pour utiliser COPY à partir ou vers un fichier
État SQL :42501
Astuce : Tout le monde peut utiliser COPY vers stdout ou à partir de stdin.
La commande \copy de psql fonctionne aussi pour tout le monde.

je n'arrive pas du tout à m'en sortir, merci d'avance si vous avez une astuce !

Dernière modification par catindri (20/02/2011 22:31:12)

Hors ligne

#2 21/02/2011 12:19:28

Marc Cousin
Membre

Re : COPY et superutilisateur

Cette syntaxe de copy demande au serveur postgresql de charger un fichier à partir du système de fichiers de la machine sur laquelle il s'exécute. C'est donc une opération privilégiée, que seul le super-utilisateur peut faire.

Par contre, il existe une autre variante de COPY, 'COPY FROM STDIN', qui indique à COPY que c'est le client qui va lui transmettre des données (comme on ferait des insert avec psql par exemple). C'est cette syntaxe là qu'il faut utiliser.

Par contre, si c'est la syntaxe COPY from fichier qui vous intéresse, le mieux, c'est d'utiliser psql, qui propose une commande interne \copy :

\copy test from /tmp/toto

Dans les coulisses, elle fait un COPY FROM STDIN, et redirige le fichier dedans.

C'est assez bien expliqué ici: http://docs.postgresql.fr/9.0/app-psql.html


Marc.

Hors ligne

#3 21/02/2011 21:55:36

catindri
Membre

Re : COPY et superutilisateur

merci , j'essaye tout de suite !

Hors ligne

#4 26/05/2011 12:16:45

jogodepau
Membre

Re : COPY et superutilisateur

Marc Cousin a écrit :

Cette syntaxe de copy demande au serveur postgresql de charger un fichier à partir du système de fichiers de la machine sur laquelle il s'exécute. C'est donc une opération privilégiée, que seul le super-utilisateur peut faire.

Par contre, il existe une autre variante de COPY, 'COPY FROM STDIN', qui indique à COPY que c'est le client qui va lui transmettre des données (comme on ferait des insert avec psql par exemple). C'est cette syntaxe là qu'il faut utiliser.

Par contre, si c'est la syntaxe COPY from fichier qui vous intéresse, le mieux, c'est d'utiliser psql, qui propose une commande interne \copy :

\copy test from /tmp/toto

Dans les coulisses, elle fait un COPY FROM STDIN, et redirige le fichier dedans.

C'est assez bien expliqué ici: http://docs.postgresql.fr/9.0/app-psql.html

Bonjour,
je suis dans le même cas, es ce que vous avez trouvé la solution.
merci de m'aider.

Hors ligne

#5 26/05/2011 12:21:09

Marc Cousin
Membre

Re : COPY et superutilisateur

Oui, l'explication détaillée de \copy par rapport à copy est ici smile


Marc.

Hors ligne

Pied de page des forums