日期:2014-05-16  浏览次数:21426 次

求高手:什么情况下会发生隐式commit和隐式rollback


------解决方案--------------------
ddl
断开连接时,这个设置决定是commit还是rollback。
------解决方案--------------------
在数据库的插入、删除和修改操作时,只有当事务在提交到数据
库时才算完成。在事务提交前,只有操作数据库的这个人才能有权看
到所做的事情,别人只有在最后提交完成后才可以看到。
提交数据有三种类型:显式提交、隐式提交及自动提交。下面分
别说明这三种类型。


(1) 显式提交
用COMMIT命令直接完成的提交为显式提交。其格式为:
SQL>COMMIT;


(2) 隐式提交
用SQL命令间接完成的提交为隐式提交。这些命令是:
ALTER,AUDIT,COMMENT,CONNECT,CREATE,DISCONNECT,DROP,
EXIT,GRANT,NOAUDIT,QUIT,REVOKE,RENAME。


(3) 自动提交
若把AUTOCOMMIT设置为ON,则在插入、修改、删除语句执行后,
系统将自动进行提交,这就是自动提交。其格式为:
SQL>SET AUTOCOMMIT ON;

刚刚看到的资料……

------解决方案--------------------
在别的时候提交。你可以选择显示提交,即手工提交commit或rollback。
或者在你执行下一个ddl的时候提交。
或在你断开连接时,按设置自动提交或回滚。
探讨

如果一个过程中有DML语句,但是没COMMIT,在过程调用结束后是否会自动提交DML语句,还是在别的时候调用?