カーソル

更新日:

用語解説

カーソルは、SQLの問合せ結果集合をプログラムから一行ずつ取り出して処理するための制御機構です。結果集合と現在位置を管理し、埋込みSQLや手続型SQLで集合処理を逐次処理へ橋渡しします。

■ 試験で押さえるポイント

  • 基本手順はDECLAREで問合せとカーソルを定義し、OPENで実行結果を用意し、FETCHで現在位置を進めながら行を取得し、最後にCLOSEで資源を解放します。

  • FETCHした列値はホスト変数へ受け取り、行なしを示す状態まで反復します。複数行結果を一行用のSELECT INTOへ直接入れる方法とは異なります。

  • スクロール可能カーソルは前後移動や位置指定ができ、更新可能カーソルではWHERE CURRENT OFにより現在行を更新できる場合があります。可否は問合せ内容とDBMS仕様に依存します。

  • 行ごとの処理はネットワーク往復や制御回数が増えやすいため、同じ処理をUPDATEやINSERT SELECTなどの集合指向SQLで表せるなら通常そちらが効率的です。

■ 選択肢での判断ポイント

DECLARE→OPEN→FETCHの反復→CLOSEという順序と、FETCH終了条件を問う問題が中心です。画面上のマウスポインタや文字入力位置を指すUIカーソルではありません。

例: 未処理注文を検索するカーソルをOPENし、FETCHするたびに注文番号と金額をホスト変数へ受け取り、行なしになるまで帳票を一行ずつ出力してからCLOSEします。

音声で聞く

同じ分野の用語