13.30 FETCH文

FETCH文は、複数行の問合せの結果セットからデータの行を一度に1行、複数行またはすべての行を取り出し、そのデータを変数、レコードまたはコレクションに格納します。

ここでのトピック

構文

セマンティクス

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つのみです。

  • 例5-49ファンクションが戻すレコードへのFETCHによる値の代入

  • 例6-6LOOP文内部のFETCH文

  • 例6-7異なる変数への同じ明示カーソルのフェッチ

  • 例6-26カーソル変数によるデータのフェッチ

  • 例6-27カーソル変数からコレクションへのフェッチ

  • 例6-41COMMIT文の後でのFOR UPDATEカーソルによるフェッチ

  • 例7-8OPEN FOR文、FETCH文およびCLOSE文を使用したシステム固有の動的SQL

  • 例12-222つのネストした表へのバルク・フェッチ

  • 例12-23レコードのネストした表へのバルク・フェッチ

  • 例12-24LIMITによるバルクFETCHの制限