Oracle試験道場

1Z0-071 · Silver SQL

DML文を使用した表の管理

★★★☆☆複数選択
Q15of 20

トランザクションを終了する条件はどれですか。(複数選択)Silver SQL15

トランザクションを終了する条件はどれですか。(複数選択)

Choices選択肢

  • ACOMMIT正解
  • BEXIT正解
  • CROLLBACK(SAVEPOINT句なし)正解
  • DCREATE正解
  • EROLLBACK(SAVEPOINT句あり)
Answer

正解は、A,B,C,Dです

Explanation解説

トランザクションが終了する条件は次のとおりです:

  1. COMMIT文 が正常に実行された
  2. ROLLBACK文(SAVEPOINT句なし) が正常に実行された
  3. EXIT文 が正常に実行された(セッション終了に伴う暗黙的なコミット)
  4. DDL(CREATE/DROP/ALTER 等) が実行された(暗黙的なコミットを伴う)
  5. DCL(GRANT/REVOKE) が実行された
  6. クライアントから切断された/障害が発生した

SAVEPOINT句ありのROLLBACK は終了しない:

ROLLBACK TO SAVEPOINT sp1 は、指定したセーブポイントまでの変更を取り消すだけで、トランザクション自体は継続 します。

例:

INSERT INTO emp VALUES (1, '田中');
SAVEPOINT sp1;
INSERT INTO emp VALUES (2, '鈴木');

ROLLBACK TO SAVEPOINT sp1;  -- 鈴木のINSERTのみ取り消し、トランザクションは継続中
-- ここでまだ田中のINSERTは確定していない

COMMIT;  -- ここでトランザクション終了、田中のINSERTが確定

DDL が暗黙的なコミットを伴う点も合わせて押さえておきましょう。