Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Mengembalikan Berbilang Set Keputusan daripada Prosedur Tersimpan Oracle PL/SQL?

Bagaimanakah Saya Boleh Mengembalikan Berbilang Set Keputusan daripada Prosedur Tersimpan Oracle PL/SQL?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-31 08:56:09467semak imbas

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

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn