概述
参考:
http://blog.csdn.net/levine2008/archive/2009/09/01/4505887.aspx
http://social.msdn.microsoft.com/Forums/en/adodotnetdataproviders/thread/86e72cff-8c35-4994-8774-03535c06a744
suspect is the oracle oci.dll version. If below version 10.2 will cause this problem.
But if you want to solve this problem without update your oci.dll.
you just change this code
ts=conn.BeginTransaction(IsolationLevel.ReadCommitted)
to
ts=conn.BeginTransaction( )
Do not set the IsolationLevel,
成员名称 | 说明 | |
---|---|---|
Chaos | 无法改写隔离级别更高的事务中的挂起的更改。 | |
ReadCommitted | 在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。 | |
ReadUncommitted | 可以进行脏读,意思是说,不发布共享锁,也不接受独占锁。 | |
RepeatableRead | 在查询中使用的所有数据上放置锁,以防止其他用户更新这些数据。防止不可重复的读取,但是仍可以有幻像行。 | |
Serializable | 在 DataSet 上放置范围锁,以防止在事务完成之前由其他用户更新行或向数据集中插入行。 | |
Snapshot | 通过在一个应用程序正在修改数据时存储另一个应用程序可以读取的相同数据版本来减少阻止。表示您无法从一个事务中看到在其他事务中进行的更改,即便重新查询也是如此。 | |
Unspecified | 正在使用与指定隔离级别不同的隔离级别,但是无法确定该级别。 当使用 OdbcTransaction 时,如果不设置 IsolationLevel 或者将 IsolationLevel 设置为 Unspecied,事务将根据基础 ODBC 驱动程序的默认隔离级别来执行。
|
最后
以上就是活泼花卷为你收集整理的ORA-01453: SET TRANSACTION must be first statement of transaction的全部内容,希望文章能够帮你解决ORA-01453: SET TRANSACTION must be first statement of transaction所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复