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

Responder a