Oracle PL/SQL 中具有多個結果集的預存程序
在Oracle PL/SQL 中,可以設計儲存程序以傳回多個結果是基於不同參數的集合。這可以增強查詢靈活性並實現高效的資料檢索。為了實現這一目標,嵌套表(也稱為集合類型)的概念發揮了作用。
考慮這樣一個場景,您需要一個預存程序根據使用者提供的條件動態檢索員工記錄。實作方法如下:
這是一個範例實作:
TYPE emp_obj IS OBJECT (empno NUMBER, ename VARCHAR2(10)); TYPE emp_tab IS 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;
現在,您可以用純SQL執行此預存程序:
SELECT * FROM TABLE(all_emps);
此查詢將傳回動態產生的多行結果集,其中每行代表一個員工物件。
以上是Oracle PL/SQL 預存程序如何傳回多個結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!