Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere Ergebnismengen aus gespeicherten Oracle PL/SQL-Prozeduren zurückgeben?

Wie kann ich mehrere Ergebnismengen aus gespeicherten Oracle PL/SQL-Prozeduren zurückgeben?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-31 08:56:09441Durchsuche

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

Mehrere Datensatzsätze aus gespeicherten Prozeduren in Oracle PL/SQL zurückgeben

Bei der Arbeit mit gespeicherten Prozeduren in Oracle PL/SQL werden mehrere Sätze zurückgegeben von Datensätzen basierend auf einem bereitgestellten Argument kann eine häufige Anforderung sein. So können Sie dies erreichen:

Eine Funktion erstellen, um eine Ergebnismenge zurückzugeben

Um eine Funktion zu erstellen, die eine Ergebnismenge zurückgibt, können wir einen benutzerdefinierten Typ definieren stellen die Objekte dar, die wir zurückgeben möchten, und deklarieren dann eine Tabelle dieses Typs innerhalb der Funktion. Diese Tabelle wird basierend auf dem an die Funktion übergebenen Argument dynamisch gefüllt.

Betrachten Sie das folgende Beispiel:

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;

Abfragen des Ergebnissatzes

Sobald die Funktion erstellt ist, können Sie die zurückgegebene Ergebnismenge wie eine Tabelle abfragen. Mit der folgenden Abfrage werden beispielsweise alle Mitarbeiter angezeigt:

SELECT * FROM table (all_emps);

Dies gibt eine Liste aller Mitarbeiter zurück, einschließlich ihrer Mitarbeiternummern und -namen.

Aufruf der Funktion aus Plain SQL

Um die Funktion aus einfachem SQL aufzurufen, verwenden Sie einfach die folgende Syntax:

SELECT * FROM all_emps;

Dies wird ausgeführt die Funktion und gibt die Ergebnismenge zurück.

Das obige ist der detaillierte Inhalt vonWie kann ich mehrere Ergebnismengen aus gespeicherten Oracle PL/SQL-Prozeduren zurückgeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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