
正文
oracle存储过程两个事务,oracle多个存储过程并行执行
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
oracle存储过程事务控制
存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后 存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,若干个有联系的过程可以组合在一起构成程序包。
用事务操作语句,如 SAVE POINT; COMMIT; ROLLBACK;oracle在执行第一个DML语句启动一个事务,不需要,自己begin transaction。实际上通常不建议存储过程中直接控制事务。
你把批量执行sql语句和存储过程,否放入一个大的存储过程里,然后在这个大的存储过程中提交事务,就所有的都会纳入事务管理当中。
不行,就算没有对应的参数,也要传一个空值,不然会调用不到方法。
一个存储过程可以包含多个事务,但一般,大家都不想看到前面的事务成功了,而后面的事务失败的情况发生,因此,放一个事务,统管整个存储过程就ok了。
是这样的,这是因为你这里的insert跟update是同一个事务,所以是可以update的到的,不会报错。
相关问答
Q1: oracle的存储过程中,有2条update语句,那2次update是默认在同一个事务...
是这样的,这是因为你这里的insert跟update是同一个事务,所以是可以update的到的,不会报错。
存储过程是被系统编译好的可执行模块。你这样做就等于是要在运行时临时组装语句。这与数据库处理存储过程的方式不符。你这种做法在sqlplus下可以。但在存储过程中不行。
您的这个过程中有少许几个update语句,通过您的程序的命名法看出很多数据是为了商业报表而准备的。
这时也许使用微软的SQL Server数据库就是最可能的办法,当然也可以使用其它的如Oracle、MySQL等等,但是作为改写来说,由于同为微软的产品,改写成SQL Server应该是最省力的办法。
存储过程的优点:存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
后面是必须跟commit的,看下是不是打开了自动提交 show autocommit;如果是on的话,就能解释你这个是什么情况了。还有就是你在执行之后是不是做了用户切换,切换用户,用的是connect命令,是会提交事务的。
Q2: 存储过程中如果嵌套了多个事务有什么实际用吗
1、一个存储过程可以包含多个事务,但一般,大家都不想看到前面的事务成功了,而后面的事务失败的情况发生,因此,放一个事务,统管整个存储过程就ok了。
2、成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。
3、如果是正式项目,建议你用 sqlserver 或 oracle的存储过程。数据与数据之间打交道的话,过程会比程序来的快的多。面试官问有没有用存储,实际上就是想知道前来面试的程序员到底做过数据量大的项目没。
4、当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。存储过程可以重复使用,可减少数据库开发人员的工作量。
oracle存储过程两个事务的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle多个存储过程并行执行、oracle存储过程两个事务的信息别忘了在本站进行查找喔。







