In questo tutorial, fornisco un esempio per restituire il set di risultati da una procedura memorizzata in Oracle utilizzando sys_refcursor.
Seguire questi passaggi per restituire il set di risultati da una procedura memorizzata in Oracle.
1. Creare una stored procedure in Oracle
La seguente procedura memorizzata (p_dept) restituirà i nomi dei reparti in sys_refcursor (p_result) dalla tabella dei reparti in cui il numero del reparto è minore o uguale al valore del parametro.
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. Ottieni il set di risultati restituito e il processo
Il seguente blocco PL/SQL otterrà il set di risultati dalla procedura memorizzata (p_dept) e stamperà i nomi dei dipartimenti.
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; /
Uscita:
ACCOUNTING RESEARCH SALES PL/SQL procedure successfully completed.
Vedi anche:
- Crea un file PDF utilizzando PL/SQL
- Ottieni l'ora locale corrente di qualsiasi Paese in PL/SQL