Il n'y a pas de if (cursor)
construction ou bien tout exists
opérateur dans la syntaxe PL/SQL. Vous devrez faire quelque chose comme ceci :
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;
Le et rownum =1 condition est juste au cas où il y aurait un grand nombre de lignes, car vous n'en avez pas besoin pour toutes les compter pour un test d'existence. (Cela n'affectera pas le résultat s'il doit compter un million de lignes, c'est juste une perte de temps lorsque vous ne vous souciez que de l'existence d'une ligne.) Vous pouvez également utiliser quelque chose comme ceci pour la vérification d'existence :
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );