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

Printemps des cartes 2024

#1 Wed 04 March 2015 10:51

mlopez
Juste Inscrit !
Date d'inscription: 20 Feb 2015
Messages: 5

Problème de quotes pour une requete

Bonjour à tous,

Je rencontre un petit problème pour une requête que j'essaie d'exécuter avec pgAdmin. Voilà la requête :

Code:

SELECT ST_GeomFromText('SELECT geom FROM communes_projets WHERE nom_region = 'ALSACE'');

Bien sûr il y a un souci au niveau des quotes pour la selection du nom de la région. J'ai essayé d'échapper les quotes en mettant des doubles, mais ça n'a pas fonctionné...

J'espère que vous serez en mesure de m'aider. Merci beaucoup

Hors ligne

 

#2 Wed 04 March 2015 11:23

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

Re: Problème de quotes pour une requete

Bonjour,

Ce n'est pas un problème de quotes mais de syntaxe de requête SQL (http://www.postgresql.org/docs/9.3/inte … yntax.html)
La forme générale d'une requête est :

Code:

select champs from table;

La fonction de conversion en texte s'utilise directement sur la géométrie et s'appelle st_astext.
st_geomFromText permet de créer une géometrie depuis un format texte:

Pour récupérer la version textuelle de la géométrie:

Code:

SELECT ST_AsText(geom) FROM communes_projets WHERE nom_region = 'ALSACE';

Et pour fabriquer une géométrie a partir d'un texte:

Code:

select st_geomFromText('POINT (0 0)');

(pas de from dans cet exemple)

Nicolas

Hors ligne

 

#3 Wed 04 March 2015 11:35

Martin Bocquet
Participant occasionnel
Date d'inscription: 4 Mar 2015
Messages: 22

Re: Problème de quotes pour une requete

Bonjour,

Le ST_GeomFromText doit porter directement sur la variable.

La requête suivante devrait marcher :

Code:

SELECT ST_GeomFromText(geom) FROM communes_projets WHERE nom_region = 'ALSACE';

ou, si vos noms de colonne ne sont pas standardisés (ie si vous avez du "Alsace", "  ALSACE" et "alsace " dans la même colonne) :

Code:

SELECT ST_GeomFromText(geom) FROM communes_projets WHERE upper(nom_region) LIKE '%ALSACE%';

[b]

Bonne journée,

Hors ligne

 

#4 Wed 04 March 2015 11:49

mlopez
Juste Inscrit !
Date d'inscription: 20 Feb 2015
Messages: 5

Re: Problème de quotes pour une requete

Merci pour vos réponses.

Oui effectivement, c'était plus un problème de syntaxe. Par contre il me renvoie au autre message d'erreur maintenant :

ERREUR:  parse error - invalid geometry
HINT:  "0106000000010000000103000000010000001F" <-- parse error at position 38 within geometry

Je ne comprends pas pourquoi il n'accepte pas la geometrie.

EDIT : Ca y est j'ai réussi, j'ai utiliser la requete suivante :

Code:

SELECT ST_GeomFromText(ST_AsText(geom)) FROM communes_projets WHERE nom_region = 'ALSACE';

Dernière modification par mlopez (Wed 04 March 2015 12:00)

Hors ligne

 

#5 Wed 04 March 2015 12:06

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

Re: Problème de quotes pour une requete

Quel résultat voulez-vous obtenir ?

La requete:

Code:

SELECT ST_GeomFromText(ST_AsText(geom)) FROM communes_projets WHERE nom_region = 'ALSACE';

ne fait rien d'autre que de convertir la géométrie en texte avant de la reconvertir en géométrie. soit:

Code:

SELECT geom FROM communes_projets WHERE nom_region = 'ALSACE';

Nicolas

Hors ligne

 

Pied de page des forums

Powered by FluxBB