カーソルとは?カーソル
カーソルとは、問合せ結果の行集合に位置を持たせ、1行ずつ取り出して手続き型のプログラムへ渡す仕組み。DECLAREで宣言し、OPEN・FETCH・CLOSEの順に操作する。集合をまとめて扱うSQLと、1件ずつ順に処理する言語との段差(インピーダンスミスマッチ)を埋める。
最終更新:2026-10-06
この語が出る過去問を解く →背景
SQLは結果を集合として返すが、COBOLやJavaのような手続き型言語には集合を受け取る器がなく、変数に入るのは1行ぶんだけである。この食い違いは、帳票を1枚ずつ組み立てる、明細ごとに外部システムを呼ぶ、といった業務処理では避けられない。カーソルは結果集合に「現在位置」という状態を持たせることで、両者を接続している。
具体例
月次請求の帳票発行のように1件ごとに外部へ送る処理では、結果をFETCHで受け取りながら進める。Oracle DatabaseのPL/SQLやPostgreSQLのPL/pgSQLでは、FORループが暗黙のカーソルとして動く。
試験での引っ掛け
カーソルが指している行そのものを更新・削除する位置付け更新は、WHERE CURRENT OF カーソル名 と書く。なお1行ずつの処理は行数ぶんのやり取りが発生するため、同じ結果を集合演算で書けるならそちらのほうが速い。
関連用語
出た過去問
出典:平成30年度 春期 データベーススペシャリスト試験 午前Ⅱ 問6(IPA)
次のSQL文は、A表に対するカーソルBのデータ操作である。aに入れる字句はどれか。 UPDATE A SET A2 = 1, A3 = 2 WHERE [ a …
正解:CURRENT OF B
要点:位置付け更新はWHERE CURRENT OF カーソル名と書く
カーソルが現在指している行だけを更新する位置付け更新では、WHERE句にCURRENT OF カーソル名と書く。ここで指定するのはカーソルの名前であり、表名や列名ではない。
出典・参考
高度試験 午前I(高度午前I 相当)のシラバスの3 技術要素 > 3. データ操作 > (2) データベース言語に掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。