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