-499   CURSOR cursor-name HAS ALREADY BEEN ASSIGNED TO THIS OR ANOTHER RESULT SET FROM PROCEDURE procedure-name.

説明

SQL ステートメント ALLOCATE CURSOR を使用することによって、 カーソルを結果セットに割り当てようとしましたが、次のいずれかの状態でした。
  • ALLOCATE CURSOR ステートメントで指定された結果セット・ロケーター変数が、 カーソル cursor-name に既に割り当てられていた。
  • ALLOCATE CURSOR ステートメントで指定されたカーソル cursor-name が、 ストアード・プロシージャー procedure-name から結果セットに既に割り当てられていた。

システムの処置

このステートメントを処理することはできません。

プログラマーの応答

ALLOCATE CURSOR ステートメントで指定されたターゲット結果セットが カーソルに既に割り当てられているかどうかを判別してください。

結果セットがカーソル cursor-name に既に割り当てられている場合は、 他のターゲット結果セットを選択するかストアード・プロシージャー procedure-name を 再度呼び出して、ASSOCIATE LOCATOR および ALLOCATE CURSOR ステートメントを再発行してください。

結果セットがカーソルにまだ割り当てられていない場合は、 ALLOCATE CURSOR ステートメントで指定されたカーソル cursor-name が ストアード・プロシージャー procedure-name から結果セットに既に割り当てられています。 カーソル cursor-name を他の結果セットに割り当てることはできないので、 ALLOCATE CURSOR ステートメントで異なるカーソル名を指定しなければなりません。

CALL ステートメントでプロシージャー名の指定に使用する構文が、 ASSOCIATE LOCATOR または DESCRIBE PROCEDURE (あるいはその両方) の構文名と同じになるように、 ステートメントを訂正してください。 プロシージャーを呼び出すのに非修飾名を使用する場合は、 その 1 部構成名をもう一度ステートメントでも使用する必要があります。 CALL ステートメントが 3 部構成名を使って作成されており、 現行サーバーが 3 部構成名の場所と同じである場合は、 ASSOCIATE LOCATOR または DESCRIBE プロシージャーではその場所を省略することができます。

SQLSTATE

24516