Memulangkan Berbilang Set Keputusan dengan Prosedur Tersimpan Oracle PL/SQL
Soalan:
Bagaimana kita boleh membuat prosedur tersimpan yang mendapatkan semula pelbagai set data berdasarkan hujah yang diluluskan dan seterusnya memanggilnya dari biasa SQL?
Jawapan:
Untuk mengembalikan berbilang set hasil daripada prosedur tersimpan Oracle PL/SQL, kami boleh menggunakan pendekatan berikut:
Buat Jenis Objek dan Jadual:
Pertama, kami menentukan jenis objek dan jadual untuk mewakili struktur data set hasil kami. Dalam contoh ini, kami mencipta jenis objek emp_obj dengan dua atribut: empno (nombor) dan ename (varchar2). Kami kemudiannya mencipta jenis jadual emp_tab sebagai koleksi objek emp_obj.
Bina Prosedur Tersimpan:
Kami mentakrifkan fungsi (all_emps in kes ini) yang mengembalikan koleksi emp_tab. Di dalam fungsi:
Panggil Prosedur Tersimpan daripada SQL:
Untuk memanggil fungsi all_emps daripada SQL, kami menggunakan operator jadual. Ini membolehkan kami menanyakan koleksi yang dikembalikan sebagai jadual biasa.
Contoh:
SQL> create type emp_obj is object (empno number, ename varchar2(10)); SQL> create type emp_tab is table of emp_obj; SQL> 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; SQL> select * from table (all_emps);
Keputusan:
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
Atas ialah kandungan terperinci Bagaimana untuk Mengembalikan Berbilang Set Keputusan daripada Prosedur Tersimpan Oracle PL/SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!