commitの自動化

通常 insert、delete、update などの DML を実行した後、トランザクションを
確定するための commit (または取り消すための rollback) の手動実行が必要だが、
オートコミットを有効にすれば、自動化が可能になる。



システム変数で設定する

Object Browser や CSE などのツールにもオートコミット機能が実装されて
いるが、SQL*Plus でもシステム変数 SET AUTOCOMMIT で設定できる。

オートコミットは便利な機能かもしれないが、名の通りコマンドが成功したら
自動的にトランザクションが確定してしまうため、使い方を誤るとリカバリが大変。
そんな時に限ってバックアップを取っていなかったりするわけで。
(個人的にはあまりお勧めしませんが、その時の用途に応じて)

 

構文

SET AUTO[COMMIT] { ON | OFF | IMM[EDIATE] | n }

※ [] 内は、省略可能。

AUTOCOMMIT OFF:機能を無効にする(デフォルト状態)
AUTOCOMMIT ON:機能を有効にする
AUTOCOMMIT IMMEDIATE:AUTOCOMMIT ON と同様
AUTOCOMMIT n: 0 ~ 1,999,999,99までの数値を入力する

nは、0(ゼロ)以上2,000,000,000未満

変更前

SQL> show AUTOCOMMIT

autocommit OFF

変更

SQL> set AUTOCOMMIT ON

変更後

SQL> show AUTOCOMMIT

autocommit IMMEDIATE