0

我们目前在同一个网站上使用 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 connection, IsolationLevelisolationLevel) +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

4

1 回答 1

0

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

于 2009-04-01T01:15:19.747 回答