Procédures stockées avec plusieurs ensembles de résultats dans Oracle PL/SQL
Dans Oracle PL/SQL, les procédures stockées peuvent être conçues pour renvoyer plusieurs résultats ensembles basés sur différents arguments. Cela peut améliorer la flexibilité des requêtes et permettre une récupération efficace des données. Pour y parvenir, le concept de tables imbriquées, également appelées types de collections, entre en jeu.
Considérez un scénario dans lequel vous avez besoin d'une procédure stockée pour récupérer dynamiquement les enregistrements des employés en fonction de critères fournis par l'utilisateur. Voici comment vous pouvez l'aborder :
Voici un exemple d'implémentation :
TYPE emp_obj IS OBJECT (empno NUMBER, ename VARCHAR2(10)); TYPE emp_tab IS 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;
Maintenant, vous pouvez exécuter cette procédure stockée en SQL simple :
SELECT * FROM TABLE(all_emps);
Cette requête renverra un ensemble de résultats généré dynamiquement avec plusieurs lignes, où chaque ligne représente un objet employé.
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!