V tomto tutoriálu uvádím příklad vrácení sady výsledků z uložené procedury v Oracle pomocí sys_refcursor.
Pokud chcete vrátit sadu výsledků z uložené procedury v Oracle, postupujte podle těchto kroků.
1. Vytvořte uloženou proceduru v Oracle
Následující uložená procedura (p_dept) vrátí názvy oddělení v sys_refcursor (p_result) z tabulky oddělení, kde je číslo oddělení menší nebo rovno hodnotě parametru.
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. Získejte vrácenou sadu výsledků a proces
Následující blok PL/SQL získá sadu výsledků z uložené procedury (p_dept) a vytiskne názvy oddělení.
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; /
Výstup:
ACCOUNTING RESEARCH SALES PL/SQL procedure successfully completed.
Viz také:
- Vytvořte soubor PDF pomocí PL/SQL
- Získejte aktuální místní čas jakékoli země v PL/SQL