• ベストアンサー

コミット(commit)について

SQL*PLUSをウィンドウ右上の×や「終了」でするとコミットされてしまいます。 SHOW AUTOCOMMITはOFFでした。 どういうことでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • entree
  • ベストアンサー率55% (405/735)
回答No.1

それはSQL*PLUSの仕様上の動作です。 ウィンドウ右上の×や「終了」することは異常終了とはみなされずコミットされてしまいます。 AUTOCOMMIT ONはDML文を実行するたびにCOMMITすることを意味します。もっと言えば、これがONになっている場合、ROLLBACKはできません。 ウィンドウ右上の×や「終了」はこれとは別の問題であり、制御する方法はありません。

その他の回答 (1)

  • suzushiro
  • ベストアンサー率45% (10/22)
回答No.2

SQL*PlusをEXITかQUITと入力すると自動COMMITがかかりますが、 ウインドウの×ボタンを押すと自動ROLLBACKがかかっているはずです。 ウインドウの×ボタンを押してしまうと アプリケーションは正常終了でもオラクルとの接続が異常終了してしまうからです。 (クライアント側のユーザプロセスが異常終了し、サーバ側のプロセスモニターというプロセスが、それを感知し、自動ROLLBACKしてくれてます)

shin9387
質問者

補足

ウインドウの×ボタンを押すと、COMMITがかかります。

関連するQ&A