2009/4/9 Osvaldo Kussama <[email protected]>: > 2009/4/9 Vinicius <[email protected]>: >> ja tentei com a virgula tbm e nao funcionou. Na funcao que esta >> funcionando tbm nao tem a virgula >> >> Osvaldo Kussama wrote: >>> 2009/4/9 Vinicius <[email protected]>: >>> >>>> Ola pessoal estou tendo um problema em uma query. >>>> >>>> $2 = longitude varchar >>>> $1 = latitude varchar >>>> >>>> qry := 'SELECT cast((''POINT(' || $2 || ' ' || $1 || ')'' >>>> <->CIDADE.COORDENADA)*100 as float) AS MINDIS >>>> from CIDADE >>>> where cidade.id_class_group = ' || idClass || >>>> ' and cidade.'||$5||' = 1 order by 1 limit 1;'; >>>> >>>> execute qry into RsDis; >>>> >>>> _*ERRO:*_ >>>> invalid input syntax for type point: "POINT(-49.000 -25.000)" >>>> >>>> Nao sei pq este erro, pois tenho uma outra funcao que utilizo o POINT da >>>> mesma forma e esta funcionando, *a funcao OK esta abaixo:* >>>> >>>> x := 'SELECT logradouro, bairro, cidade, estado, num_inicio, num_fim, >>>> >>>> distance( the_geom, GeomFromText( ''POINT(' || $2 || ' ' || $1 || >>>> ')'', -1 ) ) as dif FROM mapas.'||$3||' >>>> >>>> WHERE distance( the_geom, GeomFromText( ''POINT(' || $2 || ' ' || >>>> $1 || ')'', -1 ) ) <= 0.007 and logradouro is not null >>>> >>>> order by dif >>>> >>>> limit 1;'; >>>> >>>> -- >>>> >>> >>> >>> Creio que faltou uma vírgula, segundo o manual deveria ser: >>> POINT(-49.000, -25.000) >>> ou seja: >>> qry := 'SELECT cast((''POINT(' || $2 || ', ' || $1 || ')'' ... >>> > > > Você tem certeza que POINT(x, y) deve estar entre ' (plica ou apóstrofo)? > > Osvaldo >
Complementando: me parece que GeomFromText é uma função definida por você (UDF) e portanto o parâmetro 'POINT(x y)' é uma string tratada pela função. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
