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 中国語 Web サイトの他の関連記事を参照してください。