使用数据库链接时未进行任何更改时,数据库事务通知更改

时间:2013-10-08 14:38:48

标签: sql oracle oracle10g oracle-sqldeveloper toad

我使用的是sqldeveloper(但这个问题在TOAD上也是重复的,所以我认为它与sqldeveloper没有特别的关系)。基本问题是在我运行通过sqldeleloper使用数据库链接的复杂SELECT查询之后,它将通知我在关闭会话时需要回滚或提交的更改。奇怪的是,我只运行SELECT查询,COMMIT没有变化。有人可以向我解释这种行为吗?

1 个答案:

答案 0 :(得分:3)

通过dblink选择时会发生隐式事务。

  

当Oracle执行分布式SQL语句时,Oracle会预留一个   用于两阶段提交的回滚段区域中的条目   处理。此条目将保留,直到提交SQL语句   即使SQL语句是查询

有关此here的更多信息。如果可以的话,我会尝试挖掘Oracle链接。

更多来自马口:)

  

两阶段提交机制

     

数据库必须保证事务中的所有语句,   分布式或非分布式,作为一个单元提交或回滚。   正在进行的交易的影响对其他所有人都是不可见的   所有节点的交易;这种透明度应该是真实的   包含任何类型操作的交易,包括查询,   更新或远程过程调用。

更多来自Oracle的Distributed Database Concepts指南