问几个基础问题。100分,只想知道准确答案。 1、默认关闭。设置autocommit=on2、自动回滚3、在调用时出错会自动回滚,如成功执行后,关闭连接,则自动提交4、自动回滚 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1.默认关闭.我的习惯在procedure的最后加一句commit;2.自动回滚.3.自动回滚. 1:当系统设置autocommit=off则默认关闭2:当系统设置autocommit=on则无法回滚,否则会自动回滚3:同二4:自动回滚----------其实关键在于autocommit如果是打开的,那么所有的操作都是不可回滚的,反之,如果该参数关闭,则所有的操作都可以回滚 这么说来,一个好的习惯就是:在开头加上autocommit=off在结尾加上commit其它部分不用过多考虑,直接调用了?不知道我理解的对不对?另外,这2句也可以在JDBC中调用时设置,而不放在过程中,好处是如果一个操作由多个过程调用组成,回滚更容易控制,看来在JDBC中需要的地方加上这2句也不错。另外,大家写过程时,是习惯用返回值(OUT参数)还是抛出异常来标结束?我是用抛出异常的,不知道有没有什么害处。 1\关闭的,设置 SQL>SET AUTOCOMMIT ON;2\习惯是在异常语句中写rollback来回滚.3\会回滚 我比较矛盾的还是回滚调用。比如有2个过程A和B,A调用B。A中先执行一个修改操作,便执行到了B;如果B中出现异常,在B中回滚,则A中修改操作也回滚了;从程序角度来说,B回滚的不是它的操作,显然违反程序设计的一些思想,比如“谁创建谁删除,谁修改谁恢复”。这正是我想来探讨的。到底由谁回滚?除非我们确定了哪些操作最后将结合为一个“单件”,在这里滚,否则在设计之初无法确定由谁来回滚。有经验的师兄发表下意见 。分不够再加。 从程序角度来说,B回滚的不是它的操作,显然违反程序设计的一些思想,比如“谁创建谁删除,谁修改谁恢复”。但从业务角度来说,A,B是一个整体,如果A COMMIT了,B回滚,在业务上是没意义的。(个人理解) 不管有多少个过程或者函数,只要他们同时在一个连接的SESSION中运行,那么事务处理(如commit,rollback)就是对整个SESSION起作用,而不是对某个过程或函数起作用,所以如果你要进行事务操作,应该放在整体函数过程的最后提交,回滚应在异常段,这样保证整个session的事务一致性,也可以让其他session及时获得资源操作权 A过程的结束时,提交(commit)A和B过程中任何异常部分都回滚(rollback) Oracle大数据量更新 Oracle中修改前十条记录的sql语句!!! 请教Smart_Query问题!~ connect by nocycle 的问题 关于从SQLServer到ORACLE 10G的移植项目的咨询,向各位Oracle高手求助 行列转换--合并__ORACLE中运行 请教一个SQL语句 初级问题 请指教,long型字段如何使用? oracle数据空间问题 pl/sql简单问题 ORACLE的pl/sql中获得错误信息?????
2.自动回滚.
3.自动回滚.
2:当系统设置autocommit=on则无法回滚,否则会自动回滚
3:同二
4:自动回滚----------
其实关键在于autocommit如果是打开的,那么所有的操作都是不可回滚的,反之,如果该参数关闭,则所有的操作都可以回滚
在开头加上autocommit=off
在结尾加上commit其它部分不用过多考虑,直接调用了?不知道我理解的对不对?另外,这2句也可以在JDBC中调用时设置,而不放在过程中,好处是如果一个操作由多个过程调用组成,回滚更容易控制,看来在JDBC中需要的地方加上这2句也不错。另外,大家写过程时,是习惯用返回值(OUT参数)还是抛出异常来标结束?我是用抛出异常的,不知道有没有什么害处。
2\习惯是在异常语句中写rollback来回滚.
3\会回滚
除非我们确定了哪些操作最后将结合为一个“单件”,在这里滚,否则在设计之初无法确定由谁来回滚。有经验的师兄发表下意见 。分不够再加。