14.32 FETCH文
FETCH
文は、複数行の問合せの結果セットからデータの行を一度に1行、複数行またはすべての行を取り出し、そのデータを変数、レコードまたはコレクションに格納します。
ここでのトピック
構文
fetch_statement ::=
(bulk_collect_into_clause ::=、into_clause ::=、numeric_expression ::=)
セマンティクス
fetch_statement
cursor
オープンされている明示カーソルの名前。明示カーソルをオープンするには、「OPEN文」を使用します。
オープンする前またはクローズした後に明示カーソルからフェッチを実行すると、PL/SQLによって事前定義の例外INVALID_CURSOR
が呼び出されます。
cursor_variable
オープンされているカーソル変数の名前。カーソル変数をオープンするには、「OPEN FOR文」を使用します。カーソル変数は仮サブプログラム・パラメータにすることができます(「サブプログラム・パラメータとしてのカーソル変数」を参照)。
オープンする前またはクローズした後にカーソル変数からフェッチを実行すると、PL/SQLによって事前定義の例外INVALID_CURSOR
が呼び出されます。
:host_cursor_variable
PL/SQLホスト環境で宣言され、バインド変数としてPL/SQLに渡されてからオープンされるカーソル変数の名前。ホスト・カーソル変数をオープンするには、「OPEN FOR文」を使用します。コロン(:)とhost_cursor_variable
の間に空白は入れないでください。
ホスト・カーソル変数のデータ型は、PL/SQLカーソル変数の戻り型と互換性があります。
into_clause
FETCH
文で一度に1行ずつ取り出すには、この句を使用して、カーソルが戻す行の列値を格納する変数またはレコードを指定します。into_clause
の詳細は、into_clause ::=を参照してください。
bulk_collect_into_clause [ LIMIT numeric_expression ]
FETCH
文が戻す行を格納する1つ以上のコレクションを指定するには、bulk_collect_into_clause
を使用します。bulk_collect_into_clause
の詳細は、bulk_collect_into_clause ::=を参照してください。
FETCH
文で一度にすべての行を取り出すには、LIMIT
numeric_expression
を省略します。
FETCH
文で一度に取り出す行の数を制限するには、LIMIT
numeric_expression
を指定します。
bulk_collect_into_clauseの制限
-
bulk_collect_into_clause
は、クライアント・プログラムでは使用できません。 -
FETCH
文で暗黙のデータ型変換が必要な場合、bulk_collect_into_clause
に含めることができるのはcollection
またはhost_array
を1つのみです。
例
-
例6-54、ファンクションが戻すレコードへのFETCHによる値の代入
-
例7-6、LOOP文内部のFETCH文
-
例7-7、異なる変数への同じ明示カーソルのフェッチ
-
例7-26、カーソル変数によるデータのフェッチ
-
例7-27、カーソル変数からコレクションへのフェッチ
-
例7-41、COMMIT文の後でのFOR UPDATEカーソルによるフェッチ
-
例8-8、OPEN FOR文、FETCH文およびCLOSE文を使用したシステム固有の動的SQL
-
例13-22、2つのネストした表へのバルク・フェッチ
-
例13-23、レコードのネストした表へのバルク・フェッチ
-
例13-24、LIMITによるバルクFETCHの制限
関連トピック
この章:
他の章: