从 C# 回滚一组 Oracle 存储过程

发布于 2024-10-23 13:07:14 字数 114 浏览 6 评论 0原文

我在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

潦草背影 2024-10-30 13:07:14

从数据访问层控制事务并从 PL/SQL 脚本/包中删除提交事务。

Control your transaction from your Data Access Layer and remove the commit transaction from your PL/SQL scripts / packages.

梦里°也失望 2024-10-30 13:07:14
using (TransactionScope scope = new TransactionScope())
{
    //Do all your SP work here

    scope.Commit();
}

您还需要对 System.Transactions 的引用。

如果出现问题,则会抛出异常,并且所有内容都会回滚。 “using”语句将自动处理范围并回滚。

using (TransactionScope scope = new TransactionScope())
{
    //Do all your SP work here

    scope.Commit();
}

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文