Oracleには自動コミットという機能があり、明示的にcommit命令を発行しなくても変更を確定してくれる機能があります。
この自動コミットはデフォルトOFFなのですが、SQL*Plusでは自動コミットの設定にかかわらずコミットされるケースがあるため、注意が必要です。
自動コミットOFFでもコミットされる
Oracleの自動コミットはデフォルトでOFFなのですが、SQL*Plusは正常終了するとコミットされます。
自動コミット機能は、SQL*PlusのAUTOCOMMITシステム変数で指定します。AUTOCOMMITの設定にかかわらず、変更はSQL*Plusが正常に終了するとコミットされます。
SQL*Plusでupdate文を実行し、commitなしにexitするとコミット
SQL*Plusでupdate文を実行し、commitなしに×ボタンで閉じるとロールバック
Oracleの自動コミット設定を確認するには、以下のコマンドを実行します。
show autocommit;
autocommit OFFと表示された場合は、自動コミット機能がOFFになっています。commit命令を発行するまでは変更が確定されません。
Oracleの自動コミット設定を変更する
自動コミット設定をONにするには、以下のコマンドを実行します。
SET AUTOCOMMIT ON