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

Bagaimana Mengembalikan ResultSet dari Stored Procedure di Oracle?

Dalam tutorial ini, saya memberikan contoh untuk mengembalikan resultset dari prosedur tersimpan di Oracle menggunakan sys_refcursor.

Ikuti langkah-langkah ini untuk mengembalikan hasil dari prosedur tersimpan di Oracle.

1. Buat Prosedur Tersimpan di Oracle

Prosedur tersimpan (p_dept) berikut akan mengembalikan nama departemen di sys_refcursor (p_result) dari tabel departemen di mana nomor departemen kurang dari atau sama dengan nilai parameter.

CREATE OR REPLACE PROCEDURE p_dept (p_deptno IN dept.deptno%TYPE,
p_result OUT SYS_REFCURSOR)
IS
BEGIN
OPEN p_result FOR
SELECT dname
FROM dept
WHERE deptno <= p_deptno;
END;
/

2. Dapatkan Hasil dan Proses yang Dikembalikan

Blok PL/SQL berikut akan mendapatkan hasil dari stored procedure (p_dept) dan akan mencetak nama departemen.

SET SERVEROUTPUT ON;
DECLARE
v_result SYS_REFCURSOR;
v_dname VARCHAR2 (100);
BEGIN

/* call the procedure by passing department numbner and sys_refcursor for resultset */
p_dept (30, v_result);

LOOP
FETCH v_result INTO v_dname;

EXIT WHEN v_result%NOTFOUND;
DBMS_OUTPUT.put_line (v_dname);
END LOOP;
END;
/

Keluaran:

ACCOUNTING
RESEARCH
SALES
PL/SQL procedure successfully completed.

Lihat juga:

  • Buat file PDF menggunakan PL/SQL
  • Dapatkan Waktu Lokal Saat Ini dari Negara mana pun di PL/SQL

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan `SELECT` untuk memanggil fungsi

  2. Kueri nama kolom dari tabel dari pengguna lain

  3. Penanganan BLOB Oracle jdbc yang terlalu rumit

  4. Tampilan logis dari model data di R12.2

  5. Cara memasukkan data langsung dari Excel ke Oracle Database