我们目前在同一个网站上使用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
答案 0 :(得分:0)
确保关闭自动提交。此外,有些语句无法批量发送(例如,DDL) - 对于那些您必须单独发送或使用execute_sql的语句