C# 交易范围-ORA-02089

C# 交易范围-ORA-02089,c#,oracle,transactions,C#,Oracle,Transactions,我在项目中使用事务作用域来控制几个SQL指令(插入、更新、删除)之间的事务 我的指令之一是调用数据库中现有的存储过程,但在这个过程中有一个commit指令。我无法更改它,因为它在其他流程中使用 当我执行时,我得到一个错误:ORA-02089:在下级会话中不允许提交 我将交易声明为以下代码: TransactionOptions options = new TransactionOptions(); options.IsolationLevel = System.Transactions.Isol

我在项目中使用事务作用域来控制几个SQL指令(插入、更新、删除)之间的事务

我的指令之一是调用数据库中现有的存储过程,但在这个过程中有一个commit指令。我无法更改它,因为它在其他流程中使用

当我执行时,我得到一个错误:ORA-02089:在下级会话中不允许提交

我将交易声明为以下代码:

TransactionOptions options = new TransactionOptions();
options.IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted;
using (TransactionScope transacao = new TransactionScope(TransactionScopeOption.Required, options))
{
    ....
    transacao.complete()
}

我能做些什么来解决这个问题?

TransactionScopeOption.RequiresNew更好吗?@JeroenMostert,我只是找到了一些选项:可序列化、可重复读取、已提交、未提交、快照、混乱、未指定。对不起,我错了。我将尝试您的建议我已更改为RequiresNew,错误将继续..ORA-02089:在从属Sessionty TransactionScopeOption中不允许提交。Suppress@tbone它已工作,但操作已在事务处理之前确认。完成。好像没有事务控制。。。在完成之前,我做了一个测试并取消了事务,但我的所有数据都被更改了。