日期:2014-05-17  浏览次数:21139 次

oracle中关于return的疑问
1.在oracle存储过程中,如果更新了一部分数据未COMMIT,但却return了,会不会自动回滚?是否需要加上rollback在前面再return?

2.oracle存储过程里面没有写rollback或者commit,oracle执行完存储过程后,是否不自动提交?

------解决方案--------------------
1.return是返回,跳出执行,不会自动回滚,如果是想全部更新后commit,return时回滚的话,就手动加上rollback吧
2.存储过程如果是在sql*plus中调用的话,不加commit,则不会自动提交,但程序中不加commit,也会自动提交的
------解决方案--------------------
1、不会自动回滚
2、
SQL> show autocommit
autocommit OFF
你设置成on就自动commit了
------解决方案--------------------
2.3楼回答都正确。
------解决方案--------------------
探讨
1.return是返回,跳出执行,不会自动回滚,如果是想全部更新后commit,return时回滚的话,就手动加上rollback吧
2.存储过程如果是在sql*plus中调用的话,不加commit,则不会自动提交,但程序中不加commit,也会自动提交的