IF EXISTS()
không chính xác về mặt ngữ nghĩa. EXISTS
điều kiện chỉ có thể được sử dụng bên trong một câu lệnh SQL. Vì vậy, bạn có thể viết lại khối pl / sql của mình như sau:
declare
l_exst number(1);
begin
select case
when exists(select ce.s_regno
from courseoffering co
join co_enrolment ce
on ce.co_id = co.co_id
where ce.s_regno=403
and ce.coe_completionstatus = 'C'
and ce.c_id = 803
and rownum = 1
)
then 1
else 0
end into l_exst
from dual;
if l_exst = 1
then
DBMS_OUTPUT.put_line('YES YOU CAN');
else
DBMS_OUTPUT.put_line('YOU CANNOT');
end if;
end;
Hoặc bạn có thể chỉ cần sử dụng count
hàm xác định số hàng được trả về bởi truy vấn và rownum=1
vị từ - bạn chỉ cần biết liệu bản ghi có tồn tại hay không:
declare
l_exst number;
begin
select count(*)
into l_exst
from courseoffering co
join co_enrolment ce
on ce.co_id = co.co_id
where ce.s_regno=403
and ce.coe_completionstatus = 'C'
and ce.c_id = 803
and rownum = 1;
if l_exst = 0
then
DBMS_OUTPUT.put_line('YOU CANNOT');
else
DBMS_OUTPUT.put_line('YES YOU CAN');
end if;
end;