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