-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