Er is geen if (cursor)
constructie of er bestaat inderdaad een exists
operator in PL/SQL-syntaxis. U moet zoiets als dit doen:
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;
De en rownum =1 voorwaarde is alleen voor het geval er een groot aantal rijen is, omdat je het niet nodig hebt om ze allemaal te tellen voor een bestaanstest. (Het heeft geen invloed op het resultaat als het een miljoen rijen moet tellen, het is gewoon tijdverspilling als het je alleen maar uitmaakt of er één rij bestaat.) Je zou ook zoiets als dit kunnen gebruiken voor de bestaanscontrole:
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );