Không có if (cursor)
xây dựng hoặc thực sự có bất kỳ exists
toán tử trong cú pháp PL / SQL. Bạn sẽ cần phải làm như sau:
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;
và rownum =1 điều kiện chỉ trong trường hợp có một số lượng lớn các hàng, vì bạn không cần nó đếm tất cả chúng để kiểm tra sự tồn tại. (Nó sẽ không ảnh hưởng đến kết quả nếu nó phải đếm một triệu hàng, chỉ là lãng phí thời gian khi bạn chỉ quan tâm nếu một hàng tồn tại.) Bạn cũng có thể sử dụng một cái gì đó như thế này để kiểm tra sự tồn tại:
select count(*) into somevar from dual
where exists
( select 1
from table1
where value_desc = 'Indicator'
and value1 = 'Y'
and rownum = 1 );