平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8
テクノロジ/データベースSQLで用いるカーソルの説明のうち,適切なものはどれか。
出典:平成25年度 春期 データベーススペシャリスト試験 午前Ⅱ 問8
- アCOBOL,Cなどの親言語内では使用できない。
- イ埋込み型SQLにおいて使用し,会話型SQLでは使用できない。
- ウカーソルは検索用にだけ使用可能で,更新用には使用できない。
- エ検索処理の結果集合が単一行となる場合の機能で,複数行の結果集合は処理できない。
正解:イ
解説
カーソルは,SQLの検索結果が複数行から成る場合に,ホスト言語(COBOL,Cなど)のプログラムの中でその結果集合を1行ずつ順番に処理するための機能である。埋込み型SQL(プログラム中にSQL文を埋め込んで用いる方式)において使用され,カーソルを宣言し,OPEN,FETCH,CLOSEといった操作によって行を1行ずつ取り出す。対話的に問合せを実行しその場で結果を確認する会話型SQLでは,通常,利用者や実行環境が結果全体を直接扱うため,このような明示的なカーソル操作は必要とされない。
選択肢ごとの解説
- ア誤り。カーソルはCOBOL,Cなどの親言語(ホスト言語)内で埋込み型SQLとして使用するためのものであり,これらの言語内で使用できないというのは誤りである。
- イ正しい。カーソルは,複数行から成る検索結果集合を1行ずつ処理する必要がある埋込み型SQLにおいて使用される機能であり,結果をその場で確認する会話型SQLでは,通常,明示的なカーソル操作は用いられない。
- ウ誤り。カーソルは検索(FETCH)だけでなく,“WHERE CURRENT OF <カーソル名>”を用いることで,カーソルが現在指している行に対する更新・削除にも使用できる。
- エ誤り。カーソルは,複数行の結果集合を1行ずつ順番に処理するために用いられる機能であり,単一行の結果に限定されるものではない。