Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

IF EXISTS điều kiện không hoạt động với PLSQL

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;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. xóa mili giây khỏi trường oracle tmstmp

  2. Danh sách các phần tử định dạng số trong Oracle

  3. Ví dụ về mệnh đề WHEN của Oracle Trigger

  4. Sử dụng Oracle kết hợp ba bảng thành một với PIVOT

  5. Chạy 2 truy vấn cùng lúc trên Oracle SQL Developer?