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 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 smile
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

 

Pied de page des forums

Powered by FluxBB