› Fóruns › SQL e PL/SQL › Usar condição para definir qual select vai executa › Usar condição para definir qual select vai executa
Não, colega tá completamente errado : primeiro, o CASE ** não ** pode ser usado fora de um SQL, solto no meio do bloco PL/SQL como vc propôe : pra vc fazer isso num bloco PL/SQL vc usa o IF…
O outro ponto errado é que a partir do momento em que vc encapsulou um SELECT dentro de um bloc BEGIN/END, vc passa a programar EM PL/SQL, e na linguagem PL/SQL vc TEM que indicar em quais variáveis Pl/SQL e/ou em qual tabela onde os valores lidos na query vão ser guardados – vc RIGOROSAMENTE ** Não Pode ** ter um SELECT * FROM tabela e nada mais, vc TEM que fazer SELECT * INTO variáveis OU colocar a query dentro de um cursor…
==> A correção seria algo mais ou menos tipo :
declare
n number :=1;
begin
if n=1 then
for r in (select * From tabela1
Where tabela1.emissao = '31-jul-2018'
AND tabela1.empresa =1
)
loop
... faço algo - exibo, guardo em variaveis ou em tabela os dados recuperados pelos cursor ...
end loop;
else
for r in (select * From tabela2
Where tabela2.emissao = '31-jul-2018'
AND tabela2.empresa =2
)
loop
... faço algo - exibo, guardo em variaveis ou em tabela os dados recuperados pelos cursor ...
end loop;
end;
[]s
Chiappa