カーソルは、開くことも、閉じることもできます。
オープン カーソルは、そのカーソルに関連付けられたSELECTによって返される結果テーブルの行を指すことになります。この行を現在行といいます。
リレーショナル モデルでは、非リレーショナル プログラミング言語で実行されるような、順序付けされた行の概念、結果セットを一度に1行処理するメカニズムをサポートしていませんが、この状況に限り再定義を必要とします。
オープン カーソルは、以下の3つの位置のいずれかに配置できます。
- 行の前
カーソルは、そのカーソルがOPENされているがどの行もFETCHされていない場合は、先頭行の前に配置されます。
- 行の中
カーソルは、行のFETCHに続く行に配置されます。
カーソルが行に配置されている場合、その行はカーソルの現在行と呼ばれます。
- 結果セットの最終行の後
結果集合にそれ以上FETCHされる行がない場合、カーソルは検索された集合の最終行の直後に配置されます。
結果セットを呼び出し側またはクライアントに返すために、結果セット カーソルは開いたままにします。ストアド プロシージャで結果セット カーソルを閉じると、結果セットは削除されて、返されません。 結果セットは、開かれた順に返されます。