今までOracleのsqlplusでのautocommitを勘違いしていたことを反省。
exitでsqlplusから出たときにcommitされるか、されないかの設定と思っていました。
exitのコミット設定はexitcommit(Oracle 11g R2から)というものがありました。

もし autocommit off, exitcommit on で設定されている場合、sqlplusからexitで抜けるとコミットされることになります。
また、その設定確認は

show autocommit  
show exitcommit

で確認できます。

まとめると、

auto commit とは

autocommit ON の場合

sqlplusで、update文、insert文、delete文を実行したとき明示的に commit; を実行しなくても即座にコミットされる。

autocommit OFF の場合(デフォルト)

sqlplusで、update文、insert文、delete文を実行したとき明示的に commit; を実行しないとコミットされない。

exit commit とは

autocommit ON の場合(デフォルト)

sqlplusで、update文、insert文、delete文を実行し、commit を実行せずにexitでsqlplusをぬけたとき 自動コミットされる。

autocommit OFFの場合

sqlplusで、update文、insert文、delete文を実行し、commit を実行せずにexitでsqlplusをぬけたとき コミットされず、rollbackされる。

参考

関連記事

この記事へのコメント

まだコメントはありません
+1
0
@doPWHSj94hxeZGoSの技術ブログ
このエントリーをはてなブックマークに追加