Não existe
if (cursor)
construção ou mesmo qualquer exists
operador na sintaxe PL/SQL. Você precisará fazer algo assim:declare
somevar number;
begin
select count(*) into somevar
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1;
if somevar > 0 then
execute immediate sql_select_yes
else
execute immediate sql_select_no
end;
end;
O e rownum =1 condição é apenas no caso de haver um grande número de linhas, pois você não precisa contar todas elas para um teste de existência. (Não afetará o resultado se tiver que contar um milhão de linhas, é apenas uma perda de tempo quando você só se importa se existe uma linha.) Você também pode usar algo assim para a verificação de existência:
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );