我有几个语句,伪代码看起来像这样:
insert into local_table
crease savepoint sp1
insert into remote_db //using db_link
update local_table2
delete from local_table
commit
现在我对insert into remote_db
语句有点困惑。是否有可能正在应用的提交对local_db
和remote_db
有不同的影响?
问题陈述有点复杂。将数据从local_db
复制到remote_db
的脚本正在生成重复项。经过调查,这是唯一看起来可疑的地方,但我不确定。如果有人能阐明Oracle的COMMIT
,我将非常感激
1条答案
按热度按时间r7xajy2e1#
如果您询问
commit
是否可能导致重复行,不,这是不可能的。考虑到分布式事务发生的方式,该事务可能根本不会在远程数据库上提交(在这种情况下,它将是远程DBA可能需要解决的可疑分布式事务)。但是如果事务被成功提交,它将被正确提交。不可能出现某些行被提交而其他行没有被提交的情况,也不可能在提交行为中创建在提交之前不存在的重复行。