Boa tarde,
Alguém sabe se é possível substituir o conteúdo de uma variável em uma procedure conforme o valor passado no parâmetro.
Por exemplo:
create procedure pesquisa_conta
(
pEmpresa in varchar2
,pNumero out varchar2
)
is
v_numero_conta varchar2(10);
begin
if pEmpresa = 20 then
select nr_conta into v_numero_conta
from cliente_20;
elsif pEmpresa = 60 then
select nr_conta into v_numero_conta
from cliente_60;
end if;
pNumero:=v_numero_conta;
end;
O que eu quero fazer é usar uma variável para passar o nome da tabela e utilizar apenas um select.
.
.
.
v_nome_tabela varchar2(10);
begin
if pEmpresa = 20 then
v_nome_tabela:= ‘cliente_20’;
else
v_nome_tabela:= ‘cliente_60’;
end if;
select nr_conta into v_numero_conta
from v_nome_tabela;
pNumero:=v_numero_conta;
end;
Tentei fazer alguma coisa usando &v_nome_tabela ao invés do “execute immediate” mas não funcionou, ocorreu um erro na hora de compilar.
Se alguém tiver alguma dica, agradeço.
Obrigado.
Airton