Heim > Datenbank > MySQL-Tutorial > Wie kann ich mehrere Ergebnissätze aus einer gespeicherten Oracle PL/SQL-Prozedur abrufen?

Wie kann ich mehrere Ergebnissätze aus einer gespeicherten Oracle PL/SQL-Prozedur abrufen?

Patricia Arquette
Freigeben: 2024-12-26 16:32:14
Original
540 Leute haben es durchsucht

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

Abrufen mehrerer Ergebnismengen aus einer gespeicherten Oracle PL/SQL-Prozedur

In Oracle PL/SQL bieten gespeicherte Prozeduren eine strukturierte Möglichkeit zur Kapselung SQL-Abfragen und Datenbanklogik. Eine häufige Anforderung ist die Notwendigkeit, mehrere Datensätze aus einer gespeicherten Prozedur basierend auf einem bestimmten Eingabeargument zurückzugeben. Dies kann erreicht werden, indem eine PL/SQL-Funktion erstellt wird, die eine Tabelle oder eine Sammlung benutzerdefinierter Objekte (UDOs) zurückgibt.

Um eine Funktion zu erstellen, die eine Ergebnismenge zurückgibt, führen Sie die folgenden Schritte aus:

  1. Definieren Sie einen Tabellentyp oder einen Sammlungstyp zum Speichern der Daten.
  2. Erstellen Sie eine Funktion, die ein Argument akzeptiert und eine lokale Variable der angegebenen Daten deklariert Typ.
  3. Führen Sie einen Cursor oder eine Schleife durch Datensätze in der Datenbank aus, füllen Sie die Variable und erweitern Sie ihre Größe entsprechend.
  4. Gibt die Datenstruktur zurück, die die Ergebnismengen enthält.

Hier ist ein Beispiel mit einem Tabellentyp:

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.
Nach dem Login kopieren

Um die Ergebnismengen aus einer einfachen SQL-Abfrage abzurufen, fragen Sie einfach ab Funktion:

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
Nach dem Login kopieren

Mit dieser Methode können Sie effizient mehrere Ergebnismengen aus einer gespeicherten Prozedur abrufen und sie als reguläre Tabellen in Ihren SQL-Abfragen bearbeiten.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Ergebnissätze aus einer gespeicherten Oracle PL/SQL-Prozedur abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage