SQLカーソル操作における位置付け更新とCURRENT OF句

正解は「イ」です。 SQLの埋込み言語やストアドプロシージャにおいて、カーソルが現在指している行(現在行)を更新(位置付け更新: positioned UPDATE)または削除(位置付け削除: positioned DELETE)する場合、WHERE句に CURRENT OF <カーソル名> を指定します。 UPDATE A SET A2 = 1, A3 = 2 WHERE CURRENT OF B 問題文において、カーソル名は「カーソルB」と宣言されているため、  a  に入る正しい字句は CURRENT OF B となります。 CURRENT OF の後には更新対象のカーソル名を指定します。A1はA表の主キー列名であり、列名を指定することは構文エラーとなります。 SQLの位置付け更新構文に CURSOR ... OF ... という構文は存在しません。現在行の指定は WHERE CURRENT OF <カーソル名> です。 CURSOR B OF A1 もSQL構文として誤りです。

次のSQL文は,A表に対するカーソルBのデータ操作である。 a に入れる字句はどれか。

sql
UPDATE A
SET A2 = 1, A3 = 2
WHERE  a 

ここで,A表の構造は次のとおりであり,実線の下線は主キーを表す。

A (A1, A2, A3)

出典平成30年春期 午前Ⅱ
ア
CURRENT OF A1
イ
CURRENT OF B
ウ
CURSOR B OF A
エ
CURSOR B OF A1