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

Quy trình được lưu trữ trong SQL để kiểm tra giá trị có / không trong bảng và thực thi sql

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 );


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Khi thực hiện MERGE trong Oracle SQL, làm cách nào để cập nhật các hàng không khớp trong SOURCE?

  2. cách chèn khóa ngoại vào bảng

  3. Cách thực hiện SQL injection trên Oracle

  4. Thay đổi số ngày Excel thành ngày Oracle

  5. Gọi Hàm PL SQL Oracle từ Excel VBA