Neexistuje žádné if (cursor)
konstrukce nebo skutečně exists
operátor v syntaxi PL/SQL. Budete muset udělat něco takového:
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;
a rownum =1 podmínka je pouze v případě, že existuje velký počet řádků, protože je nepotřebujete k tomu, abyste je všechny spočítali pro test existence. (Výsledek to neovlivní, pokud má počítat milion řádků, je to jen ztráta času, když vás zajímá, jestli existuje jen jeden řádek.) Pro kontrolu existence můžete stejně tak použít něco takového:
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );