ALLOCATE CURSOR ステートメント

ALLOCATE CURSOR ステートメントは、 結果セット・ロケーター変数で識別される結果セットにカーソルを割り当てます。

結果セット・ロケーター変数については、ASSOCIATE LOCATORS ステートメントの説明を参照してください。

呼び出し

このステートメントは、SQL プロシージャーに組み込む方法でのみ使用可能です。 このステートメントは実行可能ステートメントではなく、動的に準備することはできません。

許可

必要ありません。

構文

Read syntax diagramSkip visual syntax diagramALLOCATEcursor-nameCURSOR FOR RESULT SETrs-locator-variable

説明

cursor-name
カーソルの名前を指定します。 ソース SQL プロシージャーで既に宣言されているカーソルと同じ名前は使用しないでください (SQLSTATE 24502)。
結果セット rs-locator-variable のカーソル

結果セット・ロケーター変数の宣言規則に従って、ソース SQL プロシージャーで宣言されている結果セット・ロケーター変数の名前を指定します。 SQL 変数の宣言について詳しくは、コンパウンド SQL (プロシージャー) ステートメントを参照してください。

結果セット・ロケーター変数には、ASSOCIATE LOCATORS SQL ステートメントで戻された、 有効な結果セット・ロケーター値を入れなければなりません (SQLSTATE 0F001)。

ルール

  • 割り当てカーソルを使用する際には、以下の規則が適用されます。
    • 割り当てカーソルは、 OPEN ステートメントによってオープンすることはできません (SQLSTATE 24502)。
    • 割り当てカーソルは、 位置指定 UPDATE または DELETE ステートメントでは使用できません (SQLSTATE 42828)。
    • 割り当てカーソルは、CLOSE ステートメントによってクローズできます。 割り当てカーソルをクローズすると、関連付けられたカーソルがクローズされます。
    • 各結果セットに割り当てられるカーソルは 1 つだけです。
  • 割り当てカーソルは、 ロールバック操作、暗黙的クローズ、または明示的クローズが行われるまで継続します。
  • コミット操作を行うと、割り当てカーソルで、 WITH HOLD が定義されていないものが破棄されます。
  • 割り当てカーソルを破棄すると、 SQL プロシージャー内の関連付けられたカーソルがクローズされます。

以下の SQL プロシージャーの例では、カーソル C1 を定義し、 結果セット・ロケーター変数 LOC1、 および SQL プロシージャーによって戻される関連する結果セットに関連付けます。
   ALLOCATE C1 CURSOR FOR RESULT SET LOC1;