13.18 カーソル変数の宣言
カーソル変数は、1つの問合せに限定されない明示カーソルと似ています。
カーソル変数を作成するには、事前定義のSYS_REFCURSOR
型の変数を宣言するか、REF
CURSOR
型を定義してからその型の変数を宣言します。
カーソル変数の制限
-
カーソル
FOR
LOOP
文の中ではカーソル変数を使用できません。 -
カーソル変数は、パッケージ仕様部では宣言できません。
つまり、パッケージにはパブリック・カーソル変数(パッケージの外から参照できるカーソル変数)を含めることはできません。
-
カーソル変数の値をコレクションまたはデータベース列に格納することはできません。
-
比較演算子を使用して、カーソル変数が等しいかどうか、またはNULLかどうかをテストできません。
-
サーバー間リモート・プロシージャ・コール(RPC)でカーソル変数を使用するとエラーが発生します。ただし、リモート・データベースがプロシージャ・ゲートウェイを介してアクセスされるOracle以外のデータベースである場合は、サーバー間RPCでカーソル変数を使用できます。
ここでのトピック
構文
ref_cursor_type_definition ::=
cursor_variable_declaration ::=
セマンティクス
ref_cursor_type_definition
type
定義するREF
CURSOR
型の名前。
RETURN
カーソル変数が戻す値のデータ型を指定します。
強いREF
CURSOR
型を定義する場合はRETURN
を指定します。弱いREF
CURSOR
型を定義する場合はRETURN
を省略します。REF
CURSOR
の強い型と弱い型の詳細は、「カーソル変数の作成」を参照してください。
db_table_or_view
宣言が処理されるときにアクセスできる必要があるデータベースの表またはビューの名前。
cursor
事前に宣言されている明示カーソルの名前。
cursor_variable
事前に宣言されているカーソル変数の名前。
record
ユーザー定義のレコードの名前。
record_type
データ型指定子RECORD
を使用して定義されたユーザー定義型の名前。
ref_cursor_type
データ型指定子REF
CURSOR
を使用して定義されたユーザー定義型の名前。
cursor_variable_declaration
cursor_variable
宣言するカーソル変数の名前。
type
宣言するカーソル変数の型(SYS_REFCURSOR
、または事前に定義したREF
CURSOR
型の名前)。
SYS_REFCURSOR
は弱い型です。REF
CURSOR
の強い型と弱い型の詳細は、「カーソル変数の作成」を参照してください。
例