Vous n'êtes pas identifié(e).
Pages : 1
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
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
merci , j'essaye tout de suite !
Hors ligne
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
Oui, l'explication détaillée de \copy par rapport à copy est ici
Marc.
Hors ligne
Pages : 1