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 25/05/2011 16:55:29

jogodepau
Membre

Importation fichier csv.

Bonjour,

J'aimerais savoir s'il est possible d'importer un fichier .csv pour remplir une table?

Merci d'avance

Hors ligne

#2 25/05/2011 18:49:46

Marc Cousin
Membre

Re : Importation fichier csv.

Oui, c'est même très facile (si le CSV est bien formaté bien sûr), c'est l'ordre COPY qui sait faire ça.

http://docs.postgresql.fr/9.0/sql-copy.html


Marc.

Hors ligne

#3 25/05/2011 19:01:11

jogodepau
Membre

Re : Importation fichier csv.

merci bcp.

Je suis débutante dans le domaine, alors je voudrais, la commande est à exécuter où exactement?
Es dans le shell sql ou ..?

merci encore.

Hors ligne

#4 25/05/2011 19:03:41

Marc Cousin
Membre

Re : Importation fichier csv.

Dans le shell psql, oui.

En fait, ce que vous voudrez, c'est certainement la commande \copy, qui est une commande de psql lui même, et non pas l'ordre SQL COPY. Elle a exactement la même syntaxe, mais vous permettra de charger un fichier qui se trouve sur votre poste et non pas sur le serveur.


Marc.

Hors ligne

#5 25/05/2011 19:19:01

jogodepau
Membre

Re : Importation fichier csv.

ok si je comprend bien j'ai mis mon fichier sur le bureau et j'ai écris la commande COPY stock FROM 'c:\...\....nom fichier';
le souci est qu'il me répond "echapement unicode invalide
ligne1: COPY stock FROM 'c:\...\....nom fichier';
astuce:les echapement unicode doivent être de la forme \uXXX ou \UXXXX

si j’exécute la même commande avec \copy il me répond "no such file or directory"

si je rajoute .csv après le nom de mon fichier réponse:"la relation stock n'existe pas"

?? en plus j'avais pas su faire le changement du fichier de configuration pour l'encodage de la console??

merci d'avance.

Hors ligne

#6 25/05/2011 19:26:30

Marc Cousin
Membre

Re : Importation fichier csv.

Si c'est un fichier CSV il vous manque certainement l'option CSV de copy. Peut être aussi l'option delimiter (pour lui préciser que le séparateur c'est wink et l'option header si il y a une ligne d'en-tête.

Ensuite, si votre fichier n'est pas en UTF8 (ça m'étonnerait si vous êtes sous windows), il faudra préciser à psql dans quel format se trouve le fichier. On verra ça dans un second temps


Marc.

Hors ligne

#7 25/05/2011 19:32:07

jogodepau
Membre

Re : Importation fichier csv.

donc ma commande n'est pas complète? je vais potasser ça et je reviens vers vous, merci

Hors ligne

#8 26/05/2011 12:06:40

jogodepau
Membre

Re : Importation fichier csv.

Bonjour,

Au secours, j'ai noté ma commande pour l'importation de mon fichier j'ai fais deux essais:
1- COPY stock FROM 'c:\..\..\..\sim' |STDIN [[WITH] [csv  (comme je n'ai pas de HEADER) réponse= rien
2- \COPY stock FROM 'c:\..\..\..\sim' [[WITH] [csv (réponse = no such file or directory)

merci de m'aider

Hors ligne

#9 26/05/2011 12:12:50

Marc Cousin
Membre

Re : Importation fichier csv.

Ah, oui, petite subtilité: remplacez vos \ par des /. PostgreSQL utilise le séparateur  / pour les répertoires. Je pense que votre spécification de chemin n'est pas bonne. Où se trouve le fichier exactement ?


Marc.

Hors ligne

#10 26/05/2011 12:32:39

jogodepau
Membre

Re : Importation fichier csv.

le fichier se trouve sur mon bureau
merci

Hors ligne

#11 26/05/2011 12:37:40

jogodepau
Membre

Re : Importation fichier csv.

l'astuce /. ne marche pas.
précision je suis sur windows vista pro

Hors ligne

#12 26/05/2011 12:39:13

Marc Cousin
Membre

Re : Importation fichier csv.

Désolé, je n'utilise presque jamais windows. Pourquoi, s'il se trouve sur votre bureau, avez vous mis comme chemin ..\..\..\sim ?

Le chemin, ça devrait être quelque chose comme 'c:/documents and settings/nom_de_votre_utilisateur/Bureau/sim' ?


Marc.

Hors ligne

#13 26/05/2011 12:42:27

jogodepau
Membre

Re : Importation fichier csv.

jogodepau a écrit :

l'astuce /. ne marche pas.
précision je suis sur windows vista pro

il me répond erreur d'analyse sur 'c:/users/standard/desktop/sim'

on fait on doit spécifié '.csv ou .txt' dans le chemin ou non exemple ('c:/users/standard/desktop/sim.txt'

Hors ligne

#14 26/05/2011 12:51:54

jogodepau
Membre

Re : Importation fichier csv.

je ne sais pas le documents and settings n'existe pas peut être parce que c'est vista? le chemin je l'obtiens on faisant clique droit sur le fichier propriétés et voilà!

Hors ligne

#15 26/05/2011 12:54:26

Marc Cousin
Membre

Re : Importation fichier csv.

Dans ce cas, déjà, pour commencer, mettez le fichier à la racine de votre C:, et tentez de le charger avec 'c:/mon_fichier_csv'. Nous trouverons le bon chemin après…


Marc.

Hors ligne

#16 26/05/2011 13:31:30

jogodepau
Membre

Re : Importation fichier csv.

je suis vraiment désolé je débute vraiment
es ce qu'on doit mettre un ';' en fin de commande COPY stock FROM 'c:\sim' cela me donne rien
par contre avec ';' à la fin cela me donne:
ATTENTION utilisation non standard d'un échappement dans une chaîne littérale
LIGNE1: il réécrit la commande et pointe sur '
précision:je n'es pas réglé le comment de l'encodage console(850); es ce que cela ne pose pas de problème? (comment faire modifier le fichier car j'avais essayé mais il me dit que je ne peux le sauvegarder)
je sais c'est trop mais bon vaut mieux avancer en posant des question que de rester nullllll... j'espère que je vais y arriver!

merci encore de votre aide.

Hors ligne

#17 26/05/2011 13:34:38

Marc Cousin
Membre

Re : Importation fichier csv.

COPY est un ordre SQL, il a donc besoin d'un ; à la fin, contrairement à \copy. C'est vrai que j'ai oublié de le préciser. Utilisez \copy, vu que le fichier est sur votre poste.

Ensuite, utilisez / et pas \

L'encodage de la console n'a aucune importance pour cette commande.


Marc.

Hors ligne

#18 26/05/2011 13:37:25

jogodepau
Membre

Re : Importation fichier csv.

et pour l'encodage console ?

Hors ligne

#19 26/05/2011 13:41:28

Marc Cousin
Membre

Re : Importation fichier csv.

Il n'a aucune importance pour copy. Il n'a d'influence que si vous essayez de saisir des caractères accentués dans la console. Et je n'ai aucune idée de comment on règle ce problème sous windows.


Marc.

Hors ligne

#20 26/05/2011 13:45:19

flo
Membre

Re : Importation fichier csv.

Comme a dit Marc (vos messages se sont peut-être croisés), cela n'a pas d'importance pour votre cas.
Par contre, si votre fichier s'appelle sim.csv, donnez bien le nom avec l'extension (par exemple C:/sim.csv). Ce sera le cas pour toute commande, même sous Windows.

Hors ligne

#21 26/05/2011 13:48:42

jogodepau
Membre

Re : Importation fichier csv.

commande \copy stock FROM 'c:/sim' réponse : no such file or directory.
j'ai fais l'essai avec [[WHITH] [csv]] même réponse: no such file or directory
avec l'extension csv en fin du nom de fichier rien
question débile: es ce que le pgAdminIII doit être allumé ou éteind?

Hors ligne

#22 26/05/2011 13:53:04

jogodepau
Membre

Re : Importation fichier csv.

flo a écrit :

Comme a dit Marc (vos messages se sont peut-être croisés), cela n'a pas d'importance pour votre cas.
Par contre, si votre fichier s'appelle sim.csv, donnez bien le nom avec l'extension (par exemple C:/sim.csv). Ce sera le cas pour toute commande, même sous Windows.

J'ai bien fais l'essai (\copy stock FROM 'c:/sim.csv' ) et aussi (\copy stock FROM 'c:\sim.csv') mais la réponse :Erreur la relation stock n'existe pas?

Hors ligne

#23 26/05/2011 13:53:57

Marc Cousin
Membre

Re : Importation fichier csv.

Ok, donc c'est différent: quand vous mettez l'extension, il trouve le fichier.

Vous avez une table stock ?


Marc.

Hors ligne

#24 26/05/2011 13:56:28

jogodepau
Membre

Re : Importation fichier csv.

oui la table stock existe et même qu'il y a des lignes, j'ai fais l'essai ave pgAdmin allumé et une autre fois éteins mais rien à faire

Hors ligne

#25 26/05/2011 13:58:06

Marc Cousin
Membre

Re : Importation fichier csv.

«Erreur, la relation stock n'existe pas». Vous n'auriez pas mis des majuscules dans son nom ?


Marc.

Hors ligne

Pied de page des forums