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

Làm thế nào để lưu trữ kết quả của một hàm sẽ trả về sysrefcursor?

Đây là hàm của bạn nhận một biến varchar2 và trả về một con trỏ chuột (được nhập yếu).

 CREATE OR replace FUNCTION fn_return_cur(v IN VARCHAR2)
RETURN SYS_REFCURSOR
IS
  c1 SYS_REFCURSOR;
BEGIN
    OPEN c1 FOR
      SELECT 'ABC'
      FROM   dual
      WHERE  'col1' = v;

    RETURN c1;
END;

/  

Đây là thủ tục có giá trị con trỏ được truyền làm đối số cho hàm và con trỏ trả về được truyền dưới dạng đối số OUT.

 CREATE OR replace PROCEDURE Pr_pass_out_cur(v_2 OUT SYS_REFCURSOR)
IS
  func_arg  VARCHAR2(3);
  other_arg VARCHAR2(3);
  CURSOR c_2 IS
    SELECT 'ABC' col1,
           'DEF' col2
    FROM   dual;
BEGIN
    LOOP
        FETCH c_2 INTO func_arg, other_arg;

        EXIT WHEN c_2%NOTFOUND;

        v_2 := Fn_return_cur(func_arg);
    END LOOP;
EXCEPTION
  WHEN OTHERS THEN
             NULL;
END;

/  

Hãy cho tôi biết phản hồi của bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQl Dev, cách tính số ngày trong tuần giữa 2 ngày

  2. Nhận tên cột ràng buộc duy nhất từ ​​cơ sở dữ liệu oracle

  3. Cách lấy ngày hiện tại trong Oracle

  4. Cách giải quyết ORA-04063:xem SYS.ALL_QUEUE_TABLES có lỗi?

  5. Chuyển đổi loại dữ liệu dấu thời gian thành dấu thời gian unix Oracle