if (cursor)
はありません 構築または実際にexists
PL/SQL構文の演算子。次のようなことをする必要があります:
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;
およびrownum=1 存在テストのためにすべての行をカウントする必要がないため、条件は行数が多い場合に備えてです。 (100万行をカウントする必要がある場合は結果に影響しません。1行が存在するかどうかだけを気にするのは時間の無駄です。)存在チェックにも同様に次のようなものを使用できます。
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );