-353   FETCH IS NOT ALLOWED, BECAUSE CURSOR cursor-name HAS AN UNKNOWN POSITION

説明

cursor-name のカーソル位置は不明です。カーソル cursor-name に対する前回の複数行フェッチの結果、Db2® から検索された複数行を処理中にエラーになりました。エラーにより、要求された 1 つ以上の行をプログラムに戻すことができなかったため、カーソルの位置が不明のままになっています。

エラーは、リクエスター側で検出されていた可能性があります。例えば、NULL 値の行がアプリケーションに戻されましたが、指標変数が提供されませんでした。以降の FETCH ステートメントが SQLCODE -353 になる可能性が あります。標識が提供されていたとしたら、肯定の SQLCODE が戻り、Db2 から検索されていたすべての行がアプリケーション・プログラムに戻るはずでした。

システムの処置

このステートメントを処理することはできません。カーソルの位置は変更されません。

プログラマーの応答

カーソルをクローズした後再オープンして、カーソルの位置をリセットしてください。両方向スクロール・カーソル の場合は、他のフェッチ・オリエンテーションのいずれかを指定するよう FETCH ステートメントを変更できます。例えば、以下のフェッチ・オリエンテーションのいずれかを指定して、FETCH ステートメントを変更できます。
  • BEFORE または AFTER
  • 行位置フェッチ・オリエンテーション: FIRST、LAST、または ABSOLUTE (有効な 行カーソルを設定し、1 行のデータをフェッチする)
  • 行セット位置フェッチ・オリエンテーション: FIRST ROWSET、LAST ROWSET、または ROWSET STARTING AT ABSOLUTE (有効な行セット・カーソル位置を設定し、複数行のデータをフェッチする)

あるいは、アプリケーション を変更して、元々起こっていたエラーを訂正してください。例えば、指標が提供されなかったためにエラーが 出された場合は、アプリケーションを変更して指標を提供するようにします。

SQLSTATE

24513