#1 Thu 05 June 2014 15:47
- elliottthevenod
- Juste Inscrit !
- Date d'inscription: 5 Jun 2014
- Messages: 8
QGIS 2.0 : gestionnaire BD probleme requete SQL
Bonjour à tous et à toutes,
j'ai un léger problème pour réintégrer un relevé GPS directement sur ma Base de données en passant par le gestionnaire de BD(DB manager), je vous explique:
j’insère d'abord mon relevé GPS dans ma base de données grâce au DB manager en créant une nouvelle table afin de ne pas véroler les anciennes tables. Ensuite j'utilise dans la fenêtre SQL l'expression suivante :
INSERT INTO "EP_VANNE" ("DIAMETRE","AN_POSE", "NATURE", "TYPE","SENS_FERM","MD_ACCES", the_geom)
SELECT "diametre", "md_acces", "an_pose", "nature", "sens_ferm", "type", the_geom
FROM "vanne"
Lorsque je l’exécute le message suivant apparaît:
ERREUR: la colonne « DIAMETRE » est de type numeric mais l'expression est de type character varying
LINE 13: SELECT "diametre", "md_acces", "an_pose", "nature", "sens_f...
^
HINT: Vous devez réécrire l'expression ou lui appliquer une transformation de type.
je modifie donc ma requête SQL en :
INSERT INTO "EP_VANNE" ("DIAMETRE","AN_POSE", "NATURE", "TYPE","SENS_FERM","MD_ACCES", the_geom)
SELECT to_number (CAST ("diametre" as character varying(5)), "md_acces", "an_pose", "nature", "sens_ferm", "type", the_geom
FROM "vanne"
cette fois ci le message d'erreur est different :
ERREUR: erreur de syntaxe sur ou près de « FROM »
LINE 25: FROM "vanne"
^
Je ne comprends pas d'ou viens mon erreur!
Quelqu'un à t'il une solution?
Merci d'avance
Hors ligne
#2 Thu 05 June 2014 16:01
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 2.0 : gestionnaire BD probleme requete SQL
Bonjour,
A première vue, il te reste une parenthèse à fermer.
Hors ligne
#3 Thu 05 June 2014 16:21
- elliottthevenod
- Juste Inscrit !
- Date d'inscription: 5 Jun 2014
- Messages: 8
Re: QGIS 2.0 : gestionnaire BD probleme requete SQL
Bonjour,
merci de la réponse mais je ne vois pas à quel endroit j'ai oublié une parenthèse!
Hors ligne
#4 Thu 05 June 2014 16:46
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 2.0 : gestionnaire BD probleme requete SQL
to_number(CAST ("diametre" as character varying(5))). Trois ouvertes, deux fermées.
Par contre, je ne suis pas sûr de la syntaxe utilisée pour to_number, ni de bien comprendre quel champ est numeric ("DIAMETRE", je crois) et quel est le type du champ importé "diametre".
Hors ligne
#5 Thu 05 June 2014 16:49
- elliottthevenod
- Juste Inscrit !
- Date d'inscription: 5 Jun 2014
- Messages: 8
Re: QGIS 2.0 : gestionnaire BD probleme requete SQL
Ah oui effectivement merci, le DAIMETRE des anciennes tables est en numeric et le diametre des nouvelles est en character varying, le problème viendrait du fait qu'il n'est pas en numeric mais merci tout de meme et bonne journée.
Hors ligne
#6 Thu 05 June 2014 17:16
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 2.0 : gestionnaire BD probleme requete SQL
Non, non, on n'en a pas fini
Tu veux convertir du character varying (5) en numeric, donc! je pense que select to_number(diametre,'99999') devrait faire ça.
Hors ligne
#7 Thu 05 June 2014 20:31
- Cornet Jérémie
- Participant assidu
- Lieu: Nouméa
- Date d'inscription: 6 Apr 2008
- Messages: 229
Re: QGIS 2.0 : gestionnaire BD probleme requete SQL
Bonjour,
Le typage des colonnes pose en effet problème.
Mais il y a un plus gros problème : l'ordre des colonnes. Dans un insert avec un select, seul l'ordre compte et pas les noms de colonnes.
Donc les valeurs dans le select doivent être exactement dans le même ordre que les colonnes de la table cible(dans l'odre précisé entre parenthèses ou si omises, on attends toutes les colonnes de la table dans l'ordre)
Code:
INSERT INTO "EP_VANNE" ("DIAMETRE","AN_POSE", "NATURE", "TYPE","SENS_FERM","MD_ACCES", the_geom) SELECT to_number(diametre,'99999'), "an_pose", "nature", "type", "sens_ferm", "md_acces", the_geom FROM "vanne";
Hors ligne
#8 Fri 06 June 2014 09:06
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS 2.0 : gestionnaire BD probleme requete SQL
Bonjour,
Bien vu, Jérémie! Je m'étais focalisé sur le problème de typage alors qu'il y en avait un autre qui aurait beaucoup plus faussé ses données.
Hors ligne