Maison > base de données > tutoriel mysql > Comment puis-je renvoyer plusieurs jeux de résultats à partir de procédures stockées Oracle PL/SQL ?

Comment puis-je renvoyer plusieurs jeux de résultats à partir de procédures stockées Oracle PL/SQL ?

Mary-Kate Olsen
Libérer: 2024-12-31 08:56:09
original
430 Les gens l'ont consulté

How Can I Return Multiple Result Sets from Oracle PL/SQL Stored Procedures?

Renvoi de plusieurs jeux d'enregistrements à partir de procédures stockées dans Oracle PL/SQL

Lorsque vous travaillez avec des procédures stockées dans Oracle PL/SQL, renvoi de plusieurs jeux des enregistrements basés sur un argument fourni peut être une exigence courante. Voici comment y parvenir :

Création d'une fonction pour renvoyer un ensemble de résultats

Pour créer une fonction qui renvoie un ensemble de résultats, nous pouvons définir un type personnalisé pour représenter les objets que nous voulons renvoyer, puis déclarer une table de ce type dans la fonction. Ce tableau sera renseigné dynamiquement en fonction de l'argument passé à la fonction.

Considérez l'exemple suivant :

CREATE TYPE emp_obj AS OBJECT (empno NUMBER, ename VARCHAR2(10));
CREATE TYPE emp_tab AS TABLE OF emp_obj;

CREATE OR REPLACE FUNCTION all_emps
RETURN emp_tab
IS
    l_emp_tab emp_tab := emp_tab();
    n INTEGER := 0;
BEGIN
    FOR r IN (SELECT empno, ename FROM emp)
    LOOP
        l_emp_tab.EXTEND;
        n := n + 1;
        l_emp_tab(n) := emp_obj(r.empno, r.ename);
    END LOOP;
    RETURN l_emp_tab;
END;
Copier après la connexion

Interrogation de l'ensemble de résultats

Une fois la fonction créée, vous pouvez interroger le jeu de résultats renvoyé comme s'il s'agissait d'une table. Par exemple, la requête suivante affichera tous les employés :

SELECT * FROM table (all_emps);
Copier après la connexion

Cela renverra une liste de tous les employés, y compris leurs numéros et noms d'employés.

Appel de la fonction depuis Plain SQL

Pour appeler la fonction depuis du SQL brut, utilisez simplement la syntaxe suivante :

SELECT * FROM all_emps;
Copier après la connexion

Cela exécutera la fonction et renvoie l'ensemble de résultats.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal