Der er ingen if (cursor)
konstruktion eller faktisk en hvilken som helst exists
operator i PL/SQL-syntaks. Du bliver nødt til at gøre noget som dette:
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;
og rækkenummer =1 betingelse er bare i tilfælde af, at der er et stort antal rækker, da du ikke behøver det for at tælle dem alle til en eksistenstest. (Det vil ikke påvirke resultatet, hvis det skal tælle en million rækker, det er bare spild af tid, når du kun er ligeglad med, om der findes en række.) Du kunne lige så godt bruge sådan noget til eksistenstjekket:
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );