oracle中的隐式提交(auto commit)

通常我们执行sql或pl/sql时,需要我们手工提交。这样才能使所做的更改永久保存到数据库。

但有时即使我们没有在sql或pl/sql中发出commit命令,所做的更改也会被提交。这种提交是在某些特定的情况下oracle自动发生的,通常包括以下一些情况(不是很全,只是自己知道的其中几种,欢迎大家补充):

  • DDL语句(像如:create table...)被执行;
  • DCL语句(像如:grant、revoke..)被执行;
  • 用户从DB中disconnect;
  • sqlplus中使用exit命令;
  • DML语句失败,执行rollback;
  • SET AUTOCOMMIT ON时,每一条sql都会被自动commit;

原文地址:https://www.cnblogs.com/toughhou/p/3778807.html