调试.Net OracleClient错误

时间:2009-04-01 00:29:11

标签: asp.net oracleclient

我们目前在同一个网站上使用iBatis和nHibernate。在特定页面上执行保存会导致抛出以下错误:

System.Data.OracleClient.OracleException:ORA-01453:SET TRANSACTION必须是第一个事务声明

此问题末尾显示堆栈跟踪。这只发生在这一页上(至少我们已经看到了。)

代码非常基本,在验证当前没有活动事务后调用BeginTransaction。我很难过并且在寻找想法:   1.可能导致问题的原因   2.如何调试/故障排除 - (例如:有没有办法窥探通过System.Data.OracleClient发送给Oracle的命令?)

感谢您的帮助。

System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle,Int32 rc)+304553    System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle,CommandBehavior behavior,Boolean needRowid,OciRowidDescriptor& rowidDescriptor,ArrayList& resultParameterOrdinals)+990    System.Data.OracleClient.OracleCommand.ExecuteNonQueryInternal(Boolean needRowid,OciRowidDescriptor& rowidDescriptor)+431    System.Data.OracleClient.OracleCommand.ExecuteNonQuery()+115    System.Data.OracleClient.OracleTransaction..ctor(OracleConnection连接,IsolationLevel isolationLevel)+377    System.Data.OracleClient.OracleInternalConnection.BeginOracleTransaction(IsolationLevel il)+101    System.Data.OracleClient.OracleInternalConnection.BeginTransaction(IsolationLevel il)+4    System.Data.OracleClient.OracleConnection.BeginDbTransaction(IsolationLevel isolationLevel)+63    System.Data.Common.DbConnection.System.Data.IDbConnection.BeginTransaction(IsolationLevel isolationLevel)+10    NHibernate.Transaction.AdoTransaction.Begin(IsolationLevel isolationLevel)+176

1 个答案:

答案 0 :(得分:0)

确保关闭自动提交。此外,有些语句无法批量发送(例如,DDL) - 对于那些您必须单独发送或使用execute_sql的语句