カーソルを次の文の最初、または指定された文の結果に置きます。
ANSI準拠
POSITIONは、ANSI/ISO SQL:2011に準拠しています。
必要な権限
なし。
呼び出し
実行可能形式。
埋め込みSQLのみ。
構文
POSITION cursor_name [ TO { NEXT | [STATEMENT] { statement_number | [:] numeric_variable } } ]
構文要素
- cursor_name
- 挿入カーソル以外の、開いているカーソルの名前。
- statement_number
- 配置先として希望する文の番号を表わす整数。
- numeric_variable
- 配置先として希望する文番号を表わす、タイプINTEGERに適合するホスト変数。コロン文字の使用は任意指定です。
使用上の注意
カーソルは、指定された文の最初の結果行(もしあれば)の前に再配置され、SQLSTATE、SQLCODE、および他のSQLCA値が設定されます。
POSITION TO NEXTを指定した場合、カーソルは次の文に置かれます。
POSITION TO STATEMENTを指定した場合、カーソルは指定した文に置かれます。
指定した文番号が存在しない場合(例えば、TO STATEMENT 3とコーディングしたのに、カーソルによって制御される文が2つだけの場合)、以下の実行時間例外が発生し、カーソルの位置は未定義のままとなります。
- SQLCODEは-501に設定される
- SQLSTATEは‘24501’に設定される
カーソルはカーソル文の前方向にも後方向にも置くことができ、アプリケーションが要求する限り何回でも特定の文に再配置できます。
複数のコンパイル ユニットを持つCOBOLプログラムでは、カーソルの宣言およびカーソルを開くのと同じコンパイル ユニットにREWINDまたはPOSITION TO STATEMENTが現れる場合、カーソルは後方向に置くことしかできません。
POSITIONは挿入カーソルを除くあらゆるカーソルで有効です。
カーソルによって検出された文は再実行されず、スプール ファイル内でのカーソル位置が調整されます。
POSITIONを動的SQL文として実行することはできません。
関連情報
- 挿入カーソルを除くあらゆるカーソルで有効なPOSITIONについては、DECLARE CURSOR、DECLARE CURSOR (マクロ形式)、DECLARE CURSOR (リクエスト形式)、およびDECLARE CURSOR (選択形式)を参照してください。
- POSITIONについては、REWINDを参照してください。