Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment renvoyer ResultSet à partir d'une procédure stockée dans Oracle ?

Dans ce didacticiel, je donne un exemple pour renvoyer un jeu de résultats à partir d'une procédure stockée dans Oracle à l'aide de sys_refcursor.

Suivez ces étapes pour renvoyer un jeu de résultats à partir d'une procédure stockée dans Oracle.

1. Créer une procédure stockée dans Oracle

La procédure stockée suivante (p_dept) renverra les noms de département dans sys_refcursor (p_result) à partir de la table de département où le numéro de département est inférieur ou égal à la valeur du paramètre.

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. Obtenir le jeu de résultats et le processus renvoyés

Le bloc PL/SQL suivant obtiendra le jeu de résultats de la procédure stockée (p_dept) et imprimera les noms des départements.

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;
/

Sortie :

ACCOUNTING
RESEARCH
SALES
PL/SQL procedure successfully completed.

Voir aussi :

  • Créer un fichier PDF à l'aide de PL/SQL
  • Obtenir l'heure locale actuelle de n'importe quel pays en PL/SQL