Oracle什么时候需要Commit

写完DML语句(update, insert, delete)后,需要手动COMMIT,如果没有COMMIT,更新的内容会被保存到内存中,而不是提交到数据库中,将不会被其他Session(对话)看见。其他对话看到的是更新前的数据。当用户退出对话时,Oracle才会自动Commit。

而DDL语句(create, alter, drop, truncate),自带COMMIT,所以不需要写COMMIT。因此,DDL操作不能被回滚。

执行完DML语句,如果再执行DDL语句,也会自动COMMIT未被COMMIT的数据。还有其他的SQL命令也有同样的效果:audit, noaudio, comment, grant, revoke, connect, disconnect, exit,quit.

如果打开自动提交,DML操作后也不需要手动提交。 SET AUTOCOMMIT ON

原文地址:https://www.cnblogs.com/yidan621/p/5226865.html