Evandro eu ja tentei desta forma mas dai tenho outro problema em POINT, me retorna uma msg de erro qndo executo dizendo q nao existe POINT com argumento numero,, mas estou passando string e nao numeric.
----- Original Message ----- From: "Evandro Ricardo Silvestre" <[EMAIL PROTECTED]> To: "Comunidade PostgreSQL Brasileira" <[email protected]> Sent: Tuesday, September 11, 2007 10:14 AM Subject: Re: [pgbr-geral] criando funcao Vinicius, Você tem q concatenar em uma string e executá-la com EXECUTE. Algo assim: sSql := 'SELECT INTO RsDis cidade, estado, bairro, logradouro FROM ' || cidades_pr || ' where ..... EXECUTE sSql; Essa é a unica forma de alterar a tabela que vai executar. SDS Evandro Vinicius wrote: > Ola pessoal... > > Tenho uma funcao que preciso passar pro sql qual tabela quero usar,, mas > nao > estou conseguindo fazer,, segue a funcao abaixo: > > onde esta "cidades_pr" qro substiruir pelo parametro "tabela" > > CREATE OR REPLACE FUNCTION "public"."pega_logradouro" (lat varchar, long > varchar, tabela varchar) RETURNS varchar AS > $body$ > declare > RsDis Record; > begin > > SELECT INTO RsDis cidade, estado, bairro, logradouro > FROM cidades_pr > where > Distance(the_geom, GeomFromText( 'POINT(' || $2 || ' ' || $1 || > ')', -1 ))*1 = (select Distance(the_geom, GeomFromText( 'POINT(' || $2 || > ' > ' || $1 || ')', -1 ))*1 as dif from cidades_pr where Distance(the_geom, > GeomFromText( 'POINT(' || $2 || ' ' || $1 || ')', -1 ))*1 <= 0.3 order by > dif limit 1 ) > limit 1; > > RETURN RsDis.cidade || ',' || RsDis.estado || ',' || RsDis.bairro > || > ',' || RsDis.logradouro; > > end; > _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
