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

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

Patricia Arquette
Patricia Arquetteasal
2024-12-26 16:32:14547semak imbas

How Can I Retrieve Multiple Result Sets from an Oracle PL/SQL Stored Procedure?

Mendapatkan Berbilang Set Hasil daripada Prosedur Tersimpan Oracle PL/SQL

Dalam Oracle PL/SQL, prosedur tersimpan menyediakan cara berstruktur untuk merangkum Pertanyaan SQL dan logik pangkalan data. Satu keperluan biasa ialah keperluan untuk mengembalikan beberapa set rekod daripada prosedur tersimpan berdasarkan hujah input yang diberikan. Ini boleh dicapai dengan membina fungsi PL/SQL yang mengembalikan jadual atau koleksi objek yang ditentukan pengguna (UDO).

Untuk mencipta fungsi yang mengembalikan set hasil, ikut langkah berikut:

  1. Tentukan jenis jadual atau jenis koleksi untuk menyimpan data.
  2. Buat fungsi yang menerima hujah dan mengisytiharkan pembolehubah setempat bagi jenis data yang ditentukan.
  3. Laksanakan kursor atau gelung melalui rekod dalam pangkalan data, mengisi pembolehubah dan meluaskan saiznya dengan sewajarnya.
  4. Kembalikan struktur data yang mengandungi set hasil .

Berikut ialah contoh menggunakan jenis jadual:

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.

Kepada dapatkan set hasil daripada pertanyaan SQL biasa, cuma tanya fungsi:

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

Kaedah ini membolehkan anda mendapatkan semula set hasil berbilang daripada prosedur yang disimpan dengan cekap dan memanipulasinya sebagai jadual biasa dalam pertanyaan SQL anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan 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