|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : octobre 2007 Messages : 19 ![]() |
Bonjour,
J'ai un fichier texte avec le code_personne et le nom_personne qui se rpésente sous la forme suivante : "00001";"DUPONT" "00002";"DURANT" Je ne peux pas changer la structure de ce fihcier texte (il ne dépend pas de moi). J'aimerai importer ce fichier dans une table POSTGRE (code char(5), nom varchar(50)) avec l'instruction COPY. Si j'arrive à spécifier le ";" comme delimiteur, je n'arrive pas à lui spécifier que le texte est encadré par des guillemets doubles. Conséquence : à l'importation, le code du premier client est égal à "0000 au lieu de 00001. Quelq'un peut-il m'aider ? Y-a-t-il un commande spécifique en postgre équivalente au "enclosed" de Mysql ? Merci. |
|
|
00
|
|
|
#2 |
|
Membre habitué
![]() Inscription : août 2007 Messages : 128 ![]() |
Avec COPY, c'est à mon avis impossible. 2 solutions :
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : octobre 2007 Messages : 19 ![]() |
Merci pour la réponse.
Toutefois, la solution 1 n'est pas possible car si je passe mon champ en format TEXT, il va importer le code client "00001" (au lieu de 00001). Je n'aurais donc pas les bonnes données en import. Quant à pg_loader, je vais essayer ... |
|
|
00
|
|
|
#4 |
|
Membre habitué
![]() Inscription : août 2007 Messages : 128 ![]() |
Pour le guillemet double en début et en fin, il suffit d'un UPDATE pour corriger cela. À priori, qqc comme cela :
Code :
UPDATE ta_table SET ton_champ=trim(BOTH '"' FROM ton_champ); |
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Inscription : juin 2006 Messages : 26 ![]() |
La solution de changer le format de mes champs ne me plait guère.
J'ai donc creusé une autre piste qui fonctionne. Je passe les fichiers texte en CSV car l'instruction COPY FROM avec l'option CSV traite automatiquement les guillemets doubles, ce qui résoud mon problème. Merci tout de même pour les indications fournies. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com