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

Mengembalikan kursor dari prosedur dalam ke prosedur luar di Oracle pl/sql

Berikut adalah salah satu contoh prosedur pemanggilan yang memiliki parameter REF CURSOR OUT.

SQL> create or replace procedure p1(
  2    p_empno in emp.empno%type,
  3    p_rc   out sys_refcursor
  4  )
  5  as
  6  begin
  7    open p_rc
  8     for
  9     select *
 10       from emp
 11      where empno = p_empno;
 12  end;
 13  /

Procedure created.

SQL> create or replace procedure p2(
  2    p_empno  in emp.empno%type,
  3    p_rc    out sys_refcursor
  4  )
  5  as
  6  begin
  7    p1( p_empno, p_rc );
  8  end;
  9  /

Procedure created.

Dalam hal ini, saya membuat variabel substitusi SQL*Plus rc untuk mendemonstrasikan cara memanggil p2. Jika Anda memanggilnya selain SQL*Plus, sintaksnya akan sedikit berbeda tetapi prinsip umumnya akan sama.

SQL> var rc refcursor;
SQL> exec p2( 7900, :rc );

PL/SQL procedure successfully completed.

SQL> print rc

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO   FAKE_COL        FOO
---------- ---------- ----------
      7900 SM2        CLERK           7698 03-DEC-81        950
        30          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. Oracle:Menggunakan subquery dalam pemicu

  2. Mengapa saya tidak dapat menggunakan Oracle BLOB dari Java Blob asli

  3. Cara Membatasi Hasil di Oracle

  4. sql Optimizer untuk Tabel Db Besar

  5. Masukkan Tanggal ke Oracle