Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Bagaimana cara menyimpan hasil dari suatu fungsi yang akan mengembalikan sysrefcursor?

Ini adalah fungsi Anda yang mengambil variabel varchar2 dan mengembalikan A refcursor( diketik dengan lemah).

 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;

/  

Berikut adalah prosedur yang memiliki nilai kursor yang diteruskan sebagai argumen ke fungsi dan kursor yang dikembalikan dilewatkan sebagai argumen KELUAR.

 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;

/  

Beri tahu saya tanggapan Anda.




  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 Database, pernyataan Pembaruan SQL tidak akan berfungsi (OLEDB)

  2. ORA-22288:file atau operasi LOB FILEOPEN gagal. Nama file, nama direktori salah

  3. pengidentifikasi oracle hibernasi terlalu panjang ORA-00972

  4. Oracle:tahun harus antara -4713 dan +9999, dan tidak boleh 0

  5. peningkatan otomatis oracle dengan urutan dan pemicu tidak berfungsi dengan benar