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

Responder a