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

Định nghĩa một cách có điều kiện một con trỏ

bạn sẽ cần REF CURSOR và mở nó có điều kiện, ví dụ:

SQL> CREATE OR REPLACE PROCEDURE GET_RECORDS(v_action IN VARCHAR2) IS
  2     v_thing     VARCHAR2(10);
  3     get_records SYS_REFCURSOR;
  4  BEGIN
  5     IF (v_action = 'DO THIS') THEN
  6        OPEN get_records FOR
  7           SELECT 1 FROM dual;
  8     ELSE
  9        OPEN get_records FOR
 10           SELECT 2 FROM dual;
 11     END IF;
 12  
 13     LOOP
 14        FETCH get_records INTO v_thing;
 15        EXIT WHEN get_records%NOTFOUND;
 16        /* do things */
 17        dbms_output.put_line(v_thing);
 18     END LOOP;
 19     CLOSE get_records;
 20  END;
 21  /

Procedure created

SQL> exec get_records ('DO THIS');
1

PL/SQL procedure successfully completed

SQL> exec get_records ('DO THAT');
2

PL/SQL procedure successfully completed


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách so sánh hai bảng theo từng cột trong oracle

  2. Oracle sao chép dữ liệu sang một bảng khác

  3. Oracle lựa chọn hành vi cập nhật

  4. Làm thế nào để biết Oracle Client đã cài đặt là 32 bit hay 64 bit?

  5. ORA-28040:Không có ngoại lệ giao thức xác thực phù hợp