Es gibt kein if (cursor)
Konstruktion oder überhaupt exists
Operator in PL/SQL-Syntax. Sie müssen etwa so vorgehen:
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;
Die und rownum =1 Bedingung ist nur für den Fall, dass es eine große Anzahl von Zeilen gibt, da Sie sie nicht benötigen, um alle für einen Existenztest zu zählen. (Es wird das Ergebnis nicht beeinflussen, wenn es eine Million Zeilen zählen muss, es ist nur Zeitverschwendung, wenn Sie sich nur darum kümmern, ob eine Zeile existiert.) Sie könnten auch so etwas für die Existenzprüfung verwenden:
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );