FETCH
FETCH ステートメントは SQL スクリプトで使用され、開いているカーソルから 1行を読み取ります。
構文
FETCH <cursor> INTO <varList>
変数リストは、変数のリスト (プロジェクションの数と同じ数) または適切なスキーマを持つ ROW 変数にすることができます。ROW については、「DECLARE CURSOR 型変数」を参照してください。
備考
| • | <varList> は SELECT INTO 句のように機能します(「SELECT INTO」を参照してください。) |
| • | 開いていないカーソルからフェッチすることは違法です。 |
| • | 最後の行を超えてフェッチしても、エラーは発生しません。変数は変更されず、FOUND 属性は FALSE に設定されます。詳細については、「Cursor の属性」を参照してください。 |
| • | フェッチの方向を NEXT または FIRST に指定できます。これらの単語は、次のようにキーワード FROM と一緒に使用する必要があります。 |
FETCH NEXT FROM x INTO i;FETCH FIRST FROM x INTO i;
フェッチ方向が指定されていない場合、NEXT がデフォルトです。
方向が NEXT の場合、フェッチは通常どおりに動作します。つまり、現在の行のデータをターゲット変数にフェッチします。
方向として FIRST を指定する場合、カーソルは SCROLL カーソルでなければなりません。それ以外の場合は、エラーが発生します。「DECLARE CURSOR 型変数」を参照してください。
指定された方向が FIRST の場合、カーソルは最初の行に再配置され、最初の行のデータがターゲット変数に配置されます。
エラー
次の表に、FETCH ステートメントの実行中に発生する可能性のあるエラーを示します。
|
エラー メッセージ |
原因 |
|
初期化されていないカーソル |
カーソル変数が使用されますが、フェッチ時に初期化されません。 |
|
カーソルが開いていません |
フェッチが試行されたときにカーソルが閉じられました。 |