No hay if (cursor)
construcción o de hecho cualquier exists
operador en sintaxis PL/SQL. Deberá hacer algo como esto:
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;
El y número de fila =1 la condición es solo en caso de que haya una gran cantidad de filas, ya que no es necesario contarlas todas para una prueba de existencia. (No afectará el resultado si tiene que contar un millón de filas, es solo una pérdida de tiempo cuando solo le importa si existe una fila). También podría usar algo como esto para la comprobación de existencia:
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );