Récupération de plusieurs ensembles de résultats à partir d'une procédure stockée Oracle PL/SQL
Dans Oracle PL/SQL, les procédures stockées fournissent un moyen structuré d'encapsuler Requêtes SQL et logique de base de données. Une exigence courante est la nécessité de renvoyer plusieurs ensembles d'enregistrements à partir d'une procédure stockée en fonction d'un argument d'entrée donné. Cela peut être accompli en construisant une fonction PL/SQL qui renvoie une table ou une collection d'objets définis par l'utilisateur (UDO).
Pour créer une fonction qui renvoie un ensemble de résultats, suivez ces étapes :
Voici un exemple utilisant un type de table :
SQL> create type emp_obj is object (empno number, ename varchar2(10)); 2 / Type created. SQL> create type emp_tab is table of emp_obj; 2 / Type created. SQL> create or replace function all_emps return emp_tab 2 is 3 l_emp_tab emp_tab := emp_tab(); 4 n integer := 0; 5 begin 6 for r in (select empno, ename from emp) 7 loop 8 l_emp_tab.extend; 9 n := n + 1; 10 l_emp_tab(n) := emp_obj(r.empno, r.ename); 11 end loop; 12 return l_emp_tab; 13 end; 14 / Function created.
Pour récupérer les jeux de résultats d'une simple requête SQL, interrogez simplement le function :
SQL> select * from table (all_emps); EMPNO ENAME ---------- ---------- 7369 SMITH 7499 ALLEN 7521 WARD 7566 JONES 7654 MARTIN 7698 BLAKE 7782 CLARK 7788 SCOTT 7839 KING 7844 TURNER 7902 FORD 7934 MILLER
Cette méthode vous permet de récupérer efficacement plusieurs jeux de résultats à partir d'une procédure stockée et de les manipuler comme des tables normales dans vos requêtes SQL.
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!