Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 15/05/2012 10:24:30
- marcandre
- Membre
Importation des nombres décimaux à virgule via COPY
Bonjour à tous,
J'ai une procédure stockée permettant d'importer un fichier CSV vers une table, via la commande COPY .
Seulement voilà le fichier CSV à importer peut contenir des nombres décimaux à virgule . Si c'est le cas, celà me génère une erreur de la façon suivante :
invalid input syntax for type real: "66,11"
CONTEXT: COPY ma_table, line 2, column ma_colonne: "66,11"
Je souhaite savoir est ce qu'il y a un moyen de contourner ce problème de convertion de façon à remplacer les virgules par des points pour les nombres décimaux ?
J'utilise Postgres 8.4 .
En vous remerciant d'avance .
Cordialement .
Hors ligne
#2 15/05/2012 10:34:51
- karthus
- Membre
Re : Importation des nombres décimaux à virgule via COPY
Tu utilise un délimiteur quand tu fais un copy ma_table to ...? si ce n'est pas le cas rajoute WITH DELIMITER ";"
Hors ligne
#3 15/05/2012 10:37:28
- rjuju
- Administrateur
Re : Importation des nombres décimaux à virgule via COPY
Bonjour,
Il n'y a pas de solution simple. Vous pouvez passer par une table temporaire et ensuite remplacer les , par des . et insérer dans la table finale.
Sinon, si vous avez la main sur la génération des csv vous pouvez corriger ce problème à la source.
Julien.
https://rjuju.github.io/
Hors ligne
#4 15/05/2012 10:44:05
- karthus
- Membre
Re : Importation des nombres décimaux à virgule via COPY
Autant pour moi j'ai mal lu ><. Et avec un overlay(',' placing '.') ou quelque chose dans ce genre ?
Il me semble que dans mes cours sql il y a une autre fonction.
Dernière modification par karthus (15/05/2012 10:45:41)
Hors ligne
#5 15/05/2012 10:48:56
- rjuju
- Administrateur
Re : Importation des nombres décimaux à virgule via COPY
Il existe la fonction replace() qui pourrait aider à corriger le problème, mais ce n'est pas utilisable lors d'un copy, à moins de faire un trigger sur le(s) champs. Mais c'est un peu une solution extrême.
Dernière modification par rjuju (15/05/2012 10:49:04)
Julien.
https://rjuju.github.io/
Hors ligne
#6 15/05/2012 11:30:26
- Marc Cousin
- Membre
Re : Importation des nombres décimaux à virgule via COPY
Oui, autant écrire une regexp qui convertit le fichier avant de l'importer. Mais ça devient un autre sport, même si c'est probablement le plus simple et le plus rapide.
Marc.
Hors ligne