Oracle Database SQL(ORACLE MASTER Silver SQL 2019) 問題集

ORACLE MASTER Silver SQL 2019(1Z0-071-JPN)試験対策公式 ORACLE MASTER Silver SQL 2019 試験内容チェックリスト準拠

Oracle Database SQL(ORACLE MASTER Silver SQL 2019)の日本語問題集。全180問に解説つき。模擬試験は78問・120分です。

Oracle Database SQL(ORACLE MASTER Silver SQL 2019) 無料問題 8 / 10 ・ 分野10: DML文を使用した表の管理

employees 表の3行 A、B、C を、次の順に処理した。COMMIT のあとに、更新が保存されている行はどれか。 UPDATE employees SET salary = salary + 100 WHERE last_name = 'A'; SAVEPOINT s1; UPDATE employees SET salary = salary + 100 WHERE last_name = 'B'; SAVEPOINT s2; UPDATE employees SET salary = salary + 100 WHERE last_name = 'C'; ROLLBACK TO SAVEPOINT s1; COMMIT;

  1. A の1行が保存される
  2. A、B、C の3行
  3. 1行も保存されない
  4. A と B の2行
正解と解説を見る

正解: A

正解の理由
SQL Language Reference の「ROLLBACK」は、TO SAVEPOINT 句を付けた ROLLBACK は、セーブポイントより後の部分だけを取り消し、トランザクションを終了しないと定める。s1 より後の B と C の更新が取り消され、s1 より前の A の更新が COMMIT で保存される。

違う選択肢
「A、B、C の3行」… ROLLBACK TO SAVEPOINT を実行しなかった場合の結果である。s1 以降の更新は取り消されるので、B と C の更新は残らない
「A と B の2行」… ROLLBACK TO SAVEPOINT s2 を実行した場合の結果である。ROLLBACK TO は指定したセーブポイントより後の変更を取り消すので、s1 に戻ると B の更新も取り消される
「1行も保存されない」… セーブポイントまでの ROLLBACK は、トランザクション全体を取り消さない。s1 より前の A の更新は取り消されず、COMMIT で確定される

押さえどころ
ROLLBACK TO SAVEPOINT は、指定したセーブポイントより後の変更だけを取り消す。それより前の変更は、あとの COMMIT で確定できる。

Oracle Database SQL(ORACLE MASTER Silver SQL 2019)の演習アプリ(無料10問・全問は購入で)へ

問題集(note)を見る