Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

terezaRodrigo Escobar

[Resolvido] Nome do campo em consulta

Recommended Posts

Prezados bom dia,

 

Tenho uma tabela chamada pessoa_juridica, onde ela possui dois campos RAZAO_SOCIAL e NOME_FANTASIA.

 

tenho uma função que busca dados nela, e eu gostaria de passar na funcao qual campo eu quero.

exemplo:

select chama_pessoa('razao_social')

ou

select chama_pessoa('nome_fantasia')

 

então a consulta deveria ser

 

SELECT "variavel_nome_requisitado" FROM pessoa_juridica

 

Minha dúvida, é que não consigo usar a variavel como nome do campo da tabela no select.

 

Alguém poderia me ajudar?!

 

At+

 

Rodrigo

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem duas soluções.

 

A primeira é na procedure chama_pessoa você fazer

 

select case when $1 = 'razao_social' then razao_social when $1 = 'nome_fantasia' then nome_fantasia FROM pessoa_juridica

 

sendo que o $1 pode ser mudado pro nome do parametro em chama_pessoa...

 

 

A segunda alternativa é você fazer uma variavel do tipo varchar (v_query) dentro da funcao e colocar o select dentro dele e fazer dessa forma:

 

v_query := 'select ' || $1 || ' from pessoa_juridica';

execute v_query into v_retorno;

return v_retorno;

 

Se eu entendi direito, acredito que uma dessas opções deve ser suficiente pra você

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.