PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 03/12/2009 00:14:32

imenisg
Membre

distance

salut
je veux calculer la distance entre deux points l'une est stocker comme colonne est l'autre comme parametre
mais elle ne donne pas une resultat
DECLARE

req text;
ste RECORD;
ff geometry; 

BEGIN

ff = GeometryFromText( 'POINT(191232 243118)',-1);

  req := 'SELECT * FROM deplaceee where Distance(posit,POINT(191232 243118))=0';
--||ff||')=0 ';
 
   EXECUTE req INTO ste ;

   
    RETURN ste.hhh ;

END;
et elle donne
syntax error at or near "243118"
sil vous plait si vous pouvez m'aider
merci d'avance

Hors ligne

#2 03/12/2009 07:44:03

Marc Cousin
Membre

Re : distance

Il faut des quotes autour de POINT(191232 243118). On les "protège" en les mettant en double, quand on est déjà dans une chaine :

req := 'SELECT * FROM deplaceee where Distance(posit,''POINT(191232 243118)'')=0';

Je présume que la fonction n'est pas la version finale smile

Si vous avez d'autres problèmes sur ce sujet et que vous avez besoin d'aide, essayez de donner toute la fonction (avec le create function et ses paramètres), et la définition de deplacee, ça permettra à celui qui vous aide de monter une base de test plus rapidement.


Marc.

Hors ligne

#3 03/12/2009 13:13:38

imenisg
Membre

Re : distance

salut
je met les quottes
req := 'SELECT * FROM deplaceee where Distance(posit,"POINT(191232 243118)")=0';
mais elle ne donne pas une résultat
ERROR:  invalid input syntax for type point: "POINT(191232 243118)"

Hors ligne

#4 03/12/2009 13:58:51

gleu
Administrateur

Re : distance

À priori, vous mettez des doubles guillemets au lieu de deux simples guillemets. Il faudrait plutôt tester cette requête :

req := 'SELECT * FROM deplaceee where Distance(posit,''POINT(191232 243118)'')=0';

ou alors plus simplement

req := $req$SELECT * FROM deplaceee where Distance(posit,'POINT(191232 243118)')=0$req$;

Guillaume.

Hors ligne

#5 03/12/2009 14:01:01

gleu
Administrateur

Re : distance

Je viens de penser à quelque chose. Il faut vraiment les guillemets simples pour le type point ?


Guillaume.

Hors ligne

#6 03/12/2009 18:49:08

Marc Cousin
Membre

Re : distance

D'après la doc de postgis, on dirait que oui?


Marc.

Hors ligne

Pied de page des forums