Det finns ingen if (cursor)
konstruktion eller faktiskt någon exists
operator i PL/SQL-syntax. Du måste göra något i stil med detta:
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;
och radnummer =1 skick är bara om det finns ett stort antal rader, eftersom du inte behöver det för att räkna alla för ett existenstest. (Det kommer inte att påverka resultatet om det måste räknas en miljon rader, det är bara ett slöseri med tid när du bara bryr dig om en rad finns.) Du kan lika gärna använda något sådant här för existenskontrollen:
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );