Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrere Ergebnismengen aus gespeicherten Oracle PL/SQL-Prozeduren zurückgeben?
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!