Mengembalikan Set Rekod Berbilang daripada Prosedur Tersimpan dalam Oracle PL/SQL
Apabila bekerja dengan prosedur tersimpan dalam Oracle PL/SQL, mengembalikan beberapa set rekod berdasarkan hujah yang disediakan boleh menjadi keperluan biasa. Begini cara anda boleh mencapainya:
Mencipta Fungsi untuk Mengembalikan Set Hasil
Untuk mencipta fungsi yang mengembalikan set hasil, kita boleh menentukan jenis tersuai kepada mewakili objek yang ingin kami kembalikan dan kemudian mengisytiharkan jadual jenis itu dalam fungsi. Jadual ini akan diisi secara dinamik berdasarkan hujah yang dihantar kepada fungsi.
Pertimbangkan contoh berikut:
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;
Menyoal Set Keputusan
Setelah fungsi dicipta, anda boleh menanyakan set hasil yang dikembalikan seolah-olah ia adalah jadual. Sebagai contoh, pertanyaan berikut akan memaparkan semua pekerja:
SELECT * FROM table (all_emps);
Ini akan mengembalikan senarai semua pekerja, termasuk nombor dan nama pekerja mereka.
Memanggil Fungsi dari Plain SQL
Untuk memanggil fungsi dari SQL biasa, hanya gunakan yang berikut sintaks:
SELECT * FROM all_emps;
Ini akan melaksanakan fungsi dan mengembalikan set hasil.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengembalikan Berbilang Set Keputusan daripada Prosedur Tersimpan Oracle PL/SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!