ORACLE MASTER Silver SQL 26aiDMLとトランザクションオリジナル・公式資料照合難易度★★★☆☆
Oracle AI Database 26aiでt(id PRIMARY KEY, amount NUMBER)の(1,100)は既にCOMMIT済みである。同一セッションで次を順に実行し、全て成功した。他のトランザクション、DDL、トリガーはない。最後のamountはどれか。 UPDATE t SET amount = 110 WHERE id = 1; SAVEPOINT after_first; UPDATE t SET amount = 120 WHERE id = 1; ROLLBACK TO after_first; COMMIT;
A
100
これは最初の更新も含めて全体を取り消した場合です。ROLLBACK TOの地点はその更新後です。
B
120
ROLLBACK TOを無視した結果です。2回目の更新は取り消されます。
C
NULL
部分取消しは行や値を自動的にNULLにする処理ではありません。保存点の値へ戻します。
D
110★ 正解
最初の更新を残し、保存点の後の120への変更だけを取り消しています。
解説
SAVEPOINTは最初の更新後にあります。ROLLBACK TOで取り消すのはその地点以後の2回目の更新であり、110への更新を残して最後のCOMMITで確定します。トランザクション全体のROLLBACKとは異なります。
根拠資料・確認情報
対応範囲:Oracle AI Database 26ai SQL Associate(1Z0-171-JPN)
資料確認日:2026-10-29
同じレッスンの問題
問題 1
Oracle AI Database 26aiでreview_a(amount NUMBER)、review_b(amount NUMBER)は空であり、トリガーや追加制約はない。次を1回成功させた後の各表の行数はどれか。
INSERT ALL
WHEN amount >= 50 THEN INTO review_a(amount) VALUES(amount)
WHEN amount >= 70 THEN INTO review_b(amount) VALUES(amount)
SELECT 75 AS amount FROM dual;
問題 2
Oracle AI Database 26aiでtarget_items(id PRIMARY KEY, price NUMBER)は(1,100)、(2,200)、source_itemsは(2,250)、(3,300)だけである。source_itemsのidも一意で、トリガーや別の更新はない。次が成功した後のtarget_itemsの行数とSUM(price)はどれか。
MERGE INTO target_items t
USING source_items s ON (t.id = s.id)
WHEN MATCHED THEN UPDATE SET t.price = s.price
WHEN NOT MATCHED THEN INSERT (id, price) VALUES (s.id, s.price);
問題 3
Oracle AI Database 26aiでemployees(emp_id PRIMARY KEY, dept_id, salary NUMBER)は(1,10,100)、(2,20,100)、raises(dept_id PRIMARY KEY, increment_amount NUMBER)は(10,20)だけである。次が成功した後のemp_id=1、2のsalaryの組はどれか。
UPDATE employees e
SET salary = salary +
(SELECT r.increment_amount FROM raises r WHERE r.dept_id = e.dept_id)
WHERE EXISTS
(SELECT 1 FROM raises r WHERE r.dept_id = e.dept_id);