-248   A POSITIONED DELETE OR UPDATE STATEMENT FOR CURSOR cursor-name SPECIFIED ROW n OF A ROWSET, BUT THE ROW IS NOT CONTAINED WITHIN THE CURRENT ROWSET

説明

FOR ROW n OF ROWSET 文節が定位置の DELETE または UPDATE ステートメントで指定されましたが、n は行セットの範囲内に含まれていません。この状態は、行 n が要求された行セットの範囲内にあるものの、現行行セットには要求された行数に満たない行数しか含まれていない場合にも起こります。この場合は、部分的な行セットが戻されます。部分的な行セットは、データ状態の終わり、または カーソルの閉止にならなかったエラーなどを含むさまざまな理由によって生じます。

システムの処置

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

プログラマーの応答

現行の行セットの行に対応する値を用いて位置付け UPDATE または DELETE を再実行依頼してください。指定された行が現行の行セット外にある場合は、以下を実行してください。
  • FETCH CURRENT ROWSET ステートメントの FOR n ROWS 文節を使用して、行セットがより多くの行数を含むように指定します。
  • 定位置 UPDATE または DELETE ステートメントを再実行依頼します。
部分的な行セットが戻されたためにこのメッセージが出された場合は、以下のようにします。
  • アプリケーション・ロジックを更新して、実際の行セットサイズが要求された行セット・サイズよりも小さかった場合は、それを検出するようにします。
  • 定位置 UPDATE または DELETE ステートメントが、現行行セットの行のみを参照していることを確認します。

SQLSTATE

24521