首頁 > 資料庫 > mysql教程 > 如何從 Oracle PL/SQL 預存程序傳回多個結果集?

如何從 Oracle PL/SQL 預存程序傳回多個結果集?

Mary-Kate Olsen
發布: 2024-12-31 08:56:09
原創
430 人瀏覽過

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

從Oracle PL/SQL 中的預存程序傳回多個記錄集

在Oracle PL/SQL 中使用預存程序時,傳回多個記錄集基於提供的參數的記錄可能是常見的要求。以下是實現此目的的方法:

建立一個傳回結果集的函數

要建立一個傳回結果集的函數,我們可以定義一個自訂類型來表示我們想要傳回的對象,然後在函數中宣告該類型的表。該表將根據傳遞給函數的參數動態填充。

考慮以下範例:

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;
登入後複製

查詢結果集

函數建立後,您可以像查詢表一樣查詢傳回的結果集。例如,以下查詢將顯示所有員工:

SELECT * FROM table (all_emps);
登入後複製

這將傳回所有員工的列表,包括他們的員工編號和姓名。

從Plain 呼叫該函數SQL

要從普通SQL 呼叫該函數,只需使用以下命令語法:

SELECT * FROM all_emps;
登入後複製

這將執行函數並傳回結果集。

以上是如何從 Oracle PL/SQL 預存程序傳回多個結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板