SPLは、SYS_REFCURSOR組み込みデータ型を使用するとともに、REF cursorの型を作成してその型の変数を宣言することにより、カーソル変数の宣言をサポートします。 SYS_REFCURSORは、任意の結果セットをそれに関連付けることを可能にするREF CURSORタイプである。 これは、弱タイプのREF CURSORとして知られています。
SYS_REFCURSORの宣言とユーザー定義のREF CURSOR変数のみが異なります。 カーソルを開くこと、カーソルを選択すること、およびカーソルを閉じることなどの残りの使用法は、両方のカーソルタイプにわたって同じである。 このトピックの残りの部分では、主にSYS_REFCURSORカーソルを使用する例を示します。 ユーザー定義のREF CURSORで動作させるために、例で変更する必要があるのは、宣言セクションだけです。
説明 厳密に型付けされたREF CURSORは、互換性のあるデータ型を持つフィールドの宣言された数と順序に準拠する結果セットを必要とし、オプションで結果セットを返すこともできます。
SYS_REFCURSORカーソル変数を宣言する
次のコードは、SYS_REFCURSORカーソル変数を宣言するための構文です。
名前SYS_REFCURSOR;
nameは、カーソル変数に割り当てられた識別子です。
次のコードは、SYS_REFCURSOR変数宣言の例です。
DECLARE
emp_refcur SYS_REFCURSOR;
...
ユーザー定義のREF CURSOR型変数を宣言する
ユーザー定義のREF CURSOR変数を使用するには、2つの異なる宣言ステップを実行する必要があります。
- 参照カーソルTYPEを作成します。
- そのTYPEに基づいて実際のカーソル変数を宣言します。
ユーザー定義のREFを作成するための構文 CURSORタイプは次のとおりです。
TYPE cursor_type_name IS REF CURSOR [RETURN return_type];
次のコードは、カーソル変数宣言の例です。
DECLARE
TYPE emp_cur_type IS REF CURSOR RETURN emp % ROWTYPE;
my_rec emp_cur_type;
...