從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中文網其他相關文章!