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