Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Sat 01 August 2009 15:38

diophamidou
Participant assidu
Date d'inscription: 18 Jan 2006
Messages: 243

import d'un fichier txt dans postgres

Bonjour,
je souhaiterais importer un fichier txt dans une table postgres que j'ai créée avec la même structure et ce, grâce à la fonction COPY....FROM dont voici  la syntaxe que j'ai utilisée:COPY commune FROM 'c:/temp/commune.txt' delimiter'"';
voici le message d'erreur retourné : ERROR: extra data after last expected column
État SQL :22P04
Contexte : COPY commune, line 1: ""insee","commune","statut","superficie","population","insee_cant","insee_arrond""


Avez une explication de ce message d'erreur?
Merci

Hors ligne

 

#2 Sat 01 August 2009 16:12

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: import d'un fichier txt dans postgres

Bonjour,

Ton délimiteur est le symbol qui partage les colonnes, ici la virgule.

Code:

COPY commune FROM 'c:/temp/commune.txt' delimiter ',';

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Sat 01 August 2009 16:36

diophamidou
Participant assidu
Date d'inscription: 18 Jan 2006
Messages: 243

Re: import d'un fichier txt dans postgres

merci de la rapidité de la réponse
mon delimiter est un double cote ' " ' même en le mettant j'ai quand même le message d'erreur suivant ERROR: extra data after last expected column
État SQL :22P04
Contexte : COPY commune, line 1: ""insee","commune","statut","superficie","population","insee_cant","insee_arrond""


et si je ne mets pas de delimiter voici le message retourné

ERROR: value too long for type character(5)
État SQL :22001
Contexte : COPY commune, line 1, column insee: ""insee","commune","statut","superficie","population","insee_cant","insee_arrond""

Hors ligne

 

#4 Sat 01 August 2009 16:51

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: import d'un fichier txt dans postgres

bonjour,

Peux tu poster les deux premières lignes de ton fichier txt ?

Merci,

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Sat 01 August 2009 17:07

diophamidou
Participant assidu
Date d'inscription: 18 Jan 2006
Messages: 243

Re: import d'un fichier txt dans postgres

Merci Yves de ta réactivité et de ton aide,
voici les 2 premières lignes de mon txt :

"insee","commune","statut","superficie","population","insee_cant","insee_arrond"
"76001","ALLOUVILLE-BELLEFOSSE","6",1466,1000,"55","3"

Hors ligne

 

#6 Sat 01 August 2009 18:23

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: import d'un fichier txt dans postgres

Donc je te confirme que le séparateur de champs est bien la virgule.

Par contre peux tu poster la structure de ta table commune ?

Il est possible que le nombre de champs ne soit pas le même entre cette table et celui du fichier texte.

Autre chose, il faut que tu supprimes la première ligne car ce n'est pas une données mais l'en-tête du fichier ou bien rajouter le paramètre HEADER à la fin.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Sat 01 August 2009 18:57

diophamidou
Participant assidu
Date d'inscription: 18 Jan 2006
Messages: 243

Re: import d'un fichier txt dans postgres

Voici la structure de la table dans postgres:


CREATE TABLE commune
(
  insee character(5) NOT NULL,
  commune character varying(50),
  statut character(2),
  superficie numeric(10,2)[],
  population integer,
  insee_cant character(2),
  insee_arrond character(2),
  CONSTRAINT pk_commune PRIMARY KEY (insee)
)
WITH OIDS;
ALTER TABLE commune OWNER TO postgres;

Hors ligne

 

#8 Sat 01 August 2009 19:45

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: import d'un fichier txt dans postgres

Bonjour,

Ceci fonctionne chez moi :

Code:

CREATE TABLE commune
(
  insee character(5) NOT NULL,
  commune character varying(50),
  statut character(2),
  superficie numeric(10,2),
  population integer,
  insee_cant character(2),
  insee_arrond character(2),
  CONSTRAINT pk_commune PRIMARY KEY (insee)
)
WITH OIDS;
ALTER TABLE commune OWNER TO postgres;
COPY commune FROM 'c:/temp/commune.txt' CSV HEADER;

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#9 Sat 01 August 2009 20:33

diophamidou
Participant assidu
Date d'inscription: 18 Jan 2006
Messages: 243

Re: import d'un fichier txt dans postgres

j'ai toujours le même message d'erreur que voici
ERROR: could not open file "c:/temp/commune.txt" for reading: No such file or directory
État SQL :58P01


je ne vais te fatiguer d'avantage, je te remerice beaucoup et te souhaite bon week-end

Dernière modification par diophamidou (Sat 01 August 2009 20:44)

Hors ligne

 

#10 Sat 01 August 2009 21:18

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: import d'un fichier txt dans postgres

postgresql ne semble pas trouver le fichier, vérifie que le fichier est sur le serveur (et pas sur le PC client), que le chemin est correctement définie. Quitte à lancer un

Code:

dir c:/temp/commune.txt

dans une console dos.

Bon week-end,

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#11 Sat 01 August 2009 22:14

diophamidou
Participant assidu
Date d'inscription: 18 Jan 2006
Messages: 243

Re: import d'un fichier txt dans postgres

postgres est installé sur mon portable

Hors ligne

 

#12 Tue 08 September 2009 18:13

diophamidou
Participant assidu
Date d'inscription: 18 Jan 2006
Messages: 243

Re: import d'un fichier txt dans postgres

Bonjour, j'ai réussi à importer mes données txt dans postgres (c'était une table des communes), seulement lors de l'import j'ai aussi les doubles cotes qui sont importés. Ce qui fait que quand je fais une recherche sur une colonne alpha numérique  (type code insee par exemple) il me faut aussi taper  les doubles cotes. Comment peut-on ne pas importer les doubles cotes (") ou comment les supprimer?
Merci

Hors ligne

 

#13 Fri 16 July 2010 13:46

nol2
Juste Inscrit !
Lieu: Bidart
Date d'inscription: 4 Nov 2009
Messages: 1

Re: import d'un fichier txt dans postgres

Bonjour,

j'ai un problème avec l'import d'un fichier txt, voici la construction de la table sous postgres :

CREATE TABLE phyto_substance_active
(
  sa_code numeric,
  sa_nom text NOT NULL,
  sa_koc numeric,
  sa_dt50 numeric,
  sa_id serial NOT NULL,
  CONSTRAINT "clé_substance_active" PRIMARY KEY (sa_id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE phyto_substance_active OWNER TO postgres;

voici le code :
set client_encoding = 'WIN1252';
COPY phyto_substance_active FROM 'c:/territ_eau_data/phyto_substance_active.prn' delimiter '|';

le message d'erreur est le suivant :
ERREUR:  syntaxe en entrée invalide pour le type numeric : «       1      1Pas de composition trouvée                                      0         0 »
CONTEXT:  COPY phyto_substance_active, ligne 1, colonne sa_code : «       1      1Pas de composition trouvée                                      0         0 »

********** Erreur **********
État SQL :22P02

si quelqu'un à une idée puisque là j'ai essayé pas mal de modif' sans succès ...

merci et bne journée

[problème réglé...]

Dernière modification par nol2 (Fri 16 July 2010 14:05)

Hors ligne

 

#14 Fri 16 July 2010 15:56

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: import d'un fichier txt dans postgres

nol2 a écrit:

Bonjour,

j'ai un problème avec l'import d'un fichier txt, voici la construction de la table sous postgres :

CREATE TABLE phyto_substance_active
(
  sa_code numeric,
  sa_nom text NOT NULL,
  sa_koc numeric,
  sa_dt50 numeric,
  sa_id serial NOT NULL,
  CONSTRAINT "clé_substance_active" PRIMARY KEY (sa_id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE phyto_substance_active OWNER TO postgres;

voici le code :
set client_encoding = 'WIN1252';
COPY phyto_substance_active FROM 'c:/territ_eau_data/phyto_substance_active.prn' delimiter '|';

le message d'erreur est le suivant :
ERREUR:  syntaxe en entrée invalide pour le type numeric : «       1      1Pas de composition trouvée                                      0         0 »
CONTEXT:  COPY phyto_substance_active, ligne 1, colonne sa_code : «       1      1Pas de composition trouvée                                      0         0 »

********** Erreur **********
État SQL :22P02

si quelqu'un à une idée puisque là j'ai essayé pas mal de modif' sans succès ...

merci et bne journée

[problème réglé...]


Bonjour,

Le format de la commande COPY FROM ne semble pas bon pour le fichier phyto_substance_active.prn:
la commande indique un delimiteur '|', mais le fichier semble contenir des espaces ou des tabulations, comme delimiteur:
«       1      1Pas de composition

Essayez de changer le delimiteur dans la commande COPY.

Nicolas

Hors ligne

 

#15 Fri 16 July 2010 16:01

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: import d'un fichier txt dans postgres

nol2 a écrit:

Bonjour,

j'ai un problème avec l'import d'un fichier txt, voici la construction de la table sous postgres :

CREATE TABLE phyto_substance_active
(
  sa_code numeric,
  sa_nom text NOT NULL,
  sa_koc numeric,
  sa_dt50 numeric,
  sa_id serial NOT NULL,
  CONSTRAINT "clé_substance_active" PRIMARY KEY (sa_id)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE phyto_substance_active OWNER TO postgres;

voici le code :
set client_encoding = 'WIN1252';
COPY phyto_substance_active FROM 'c:/territ_eau_data/phyto_substance_active.prn' delimiter '|';

le message d'erreur est le suivant :
ERREUR:  syntaxe en entrée invalide pour le type numeric : «       1      1Pas de composition trouvée                                      0         0 »
CONTEXT:  COPY phyto_substance_active, ligne 1, colonne sa_code : «       1      1Pas de composition trouvée                                      0         0 »

********** Erreur **********
État SQL :22P02

si quelqu'un à une idée puisque là j'ai essayé pas mal de modif' sans succès ...

merci et bne journée

[problème réglé...]


Hmm pardon, pas vu la derniere ligne...

Hors ligne

 

#16 Sat 17 July 2010 08:25

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3199
Site web

Re: import d'un fichier txt dans postgres

Bonjour,

Nicolas Ribot a écrit:

Hmm pardon, pas vu la derniere ligne...


Pas bien grave de ne pas avoir vu:

nol2 a écrit:

[problème réglé...]


Par contre une petite explication sur la solution du problème serait la bien venue, car cela pourrait servir à d'autres!


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

Pied de page des forums

Powered by FluxBB