今天发觉一个奇怪的现象,前两天建的一个link造成了我在更新数据库的时候报ORA-01453: SET TRANSACTION must be first statement of transaction错误
具体情况时这样,我一开始运行一句select的sql 这句sql中用到了一个link去连接其他数据库
当select数据出来后我去更新这条数据,就会报ORA-01453: SET TRANSACTION must be first statement of transaction错误
想请教大家这是什么原因?难道执行了跨库操作,普通事务就不行了,要用分布式事务?
具体情况时这样,我一开始运行一句select的sql 这句sql中用到了一个link去连接其他数据库
当select数据出来后我去更新这条数据,就会报ORA-01453: SET TRANSACTION must be first statement of transaction错误
想请教大家这是什么原因?难道执行了跨库操作,普通事务就不行了,要用分布式事务?
解决方案 »
- oracle 8.1.7 误删除一些表的数据后,如何恢复?求高手解答
- 这个等待是什么啊Streams AQ: waiting for time management or cleanup tasks
- sqlloader中 达到提交点-逻辑记录计数3 是什么意思
- 通过oracle9i的透明网关来访问DB2数据库,怎么配置?
- 变量名作为字段处理
- oracle和外部程序通信问题 如何发消息
- ORACLE8I启动表分区功能需要什么包?
- 为什么我安装的oracle客户端不能显示中文。
- 再求VB+Oracale客户端免安装的方法!!希望高手求救!!!给200分
- 求救:oracle10g删除表时出现错误
- 关于事务提交,概念很模糊,请指点
- 怎么在oracle中创建JAVA程序
现在倒不是做link的数据库的表不能更新,而是所有表在更新的时候只要一用事务都报错
问题知道在哪里了,可是我怎么commit/rollback呢?我如果再select的时候就启用事务就会报
Execute requires the Command object to have a Transaction object when the Connection object assigned to the Command is in a pending local transaction. The Transaction property of the Command has not been init现在问题是我如何在程序里提交系统自己启动的事务,在SQL里写commit的语句吗?
还有oracle的事务里是不是不能有select语句?
问题已经初步解决了我在那句有link的select语句后面加了一句commit语句如下
cmd.CommandText = "commit"
cmd.ExcuteNonQuery()
用这样的方法提交系统自动启动的事务,问题解决
但是我想如果我有link的语句是update语句的话,这样我在程序里面一定会自己启动事务,系统的事务
和我的事务是否会有冲突呢?