从 C# 回滚一组 Oracle 存储过程
我在 Oracle 中有一组存储过程,用于将用户信息保存到多个不同的表中。
如果其中任何一个失败,我想回滚更改。但是,每个存储过程中都有一个提交语句。
我可以/我怎样才能做到这一点?
I have a set of storred procs in Oracle that save a user's information into a number of different tables.
If any of these fail, I want to rollback the changes. However, there is a commit statement within each stored proc.
Can I / How can I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
从数据访问层控制事务并从 PL/SQL 脚本/包中删除提交事务。
Control your transaction from your Data Access Layer and remove the commit transaction from your PL/SQL scripts / packages.
您还需要对 System.Transactions 的引用。
如果出现问题,则会抛出异常,并且所有内容都会回滚。 “using”语句将自动处理范围并回滚。
You need a reference to System.Transactions, also.
If something fails, an exception will be thrown and everything will get rolled back. The "using" statement will automatically dispose the scope and rollback.