sql >> Databáze >  >> RDS >> Oracle

Jak vrátit sadu výsledků z uložené procedury v Oracle?

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
  1. Jak přidám indexy do tabulek MySQL?

  2. MySQL utf8mb4, Chyby při ukládání emotikonů

  3. jak vypočítat podobnost mezi dvěma řetězci v MYSQL

  4. Konfigurace systému se nepodařilo inicializovat