Vous n'êtes pas identifié(e).
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
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
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
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
À 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
Je viens de penser à quelque chose. Il faut vraiment les guillemets simples pour le type point ?
Guillaume.
Hors ligne
D'après la doc de postgis, on dirait que oui?
Marc.
Hors ligne