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

Thêm trạng thái IF ELSE

Về cách đối phó với loại vấn đề cú pháp này khi mới bắt đầu, tôi khuyên bạn nên thực hành đơn giản hóa nó xuống ví dụ nhỏ nhất có thể, để bạn không bị phân tâm bởi logic nối.

Ví dụ:bạn có thể nhanh chóng kiểm tra điều này và thấy rằng nó sẽ không hoạt động :

declare
    rc sys_refcursor;
begin
    open rc for
        case
            when 1 = 1 then select * from dual  -- not valid
        end;
end;

không thành công với

ORA-06550: line 6, column 29:
PLS-00103: Encountered the symbol "SELECT" when expecting one of the following: ...

bởi vì open rc for select cú pháp phải là một câu lệnh duy nhất và không thể tách rời bằng logic có điều kiện.

Lưu ý rằng không có create function , tham số hoặc kết hợp, v.v. để làm phức tạp mọi thứ. Bạn có thể thêm lại tất cả những cái đó sau khi đã nắm rõ cú pháp. case cú pháp câu lệnh là tại đây . (Lưu ý rằng có một vài loại case khác nhau .) Nó cần phải là một trong hai

declare
    rc sys_refcursor;
begin
    case
        when 1 = 1 then
            open rc for select * from dual;
    end case;
end;

hoặc tương đương bằng cách sử dụng if :

declare
    rc sys_refcursor;
begin
    if 1 = 1 then
        open rc for select * from dual;
    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. làm thế nào để sửa đổi một ràng buộc kiểm tra hiện có?

  2. Maven Cảnh báo chết người:protocol_version

  3. Cập nhật cột Clob trong Oracle

  4. Cách hiển thị số 0 đứng đầu trong một số tiên tri

  5. Làm cách nào để bạn cài đặt perl DBD ::Oracle trên OSX Snow Leopard 10.6