- ベストアンサー
コミット(commit)について
SQL*PLUSをウィンドウ右上の×や「終了」でするとコミットされてしまいます。 SHOW AUTOCOMMITはOFFでした。 どういうことでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
それはSQL*PLUSの仕様上の動作です。 ウィンドウ右上の×や「終了」することは異常終了とはみなされずコミットされてしまいます。 AUTOCOMMIT ONはDML文を実行するたびにCOMMITすることを意味します。もっと言えば、これがONになっている場合、ROLLBACKはできません。 ウィンドウ右上の×や「終了」はこれとは別の問題であり、制御する方法はありません。
その他の回答 (1)
- suzushiro
- ベストアンサー率45% (10/22)
回答No.2
SQL*PlusをEXITかQUITと入力すると自動COMMITがかかりますが、 ウインドウの×ボタンを押すと自動ROLLBACKがかかっているはずです。 ウインドウの×ボタンを押してしまうと アプリケーションは正常終了でもオラクルとの接続が異常終了してしまうからです。 (クライアント側のユーザプロセスが異常終了し、サーバ側のプロセスモニターというプロセスが、それを感知し、自動ROLLBACKしてくれてます)
補足
ウインドウの×ボタンを押すと、COMMITがかかります。