1

いくつかのステートメントがありますが、擬似コードは次のようになります

insert into local_table
crease savepoint sp1

insert into remote_db //using db_link
update local_table2
delete from local_table
commit

今、私はremote_dbステートメントへの挿入でちょっと混乱しています。適用されているコミットがローカルデータベースとリモートデータベースに異なる影響を与える可能性はありますか?

問題の説明はちょっと複雑です。ローカルデータベースからリモートデータベースにデータをコピーするスクリプトは、重複を生成しています。調査を行った結果、疑わしいと思われる場所はここだけですが、よくわかりません。誰かがオラクルのコミットに光を当てることができれば本当にありがたいです。

4

1 に答える 1

2

が重複行を引き起こす可能性があるかどうかを尋ねている場合commit、いいえ、それは不可能です。

分散トランザクションが発生する方法を考えると、そのトランザクションがリモートデータベースでまったくコミットされない可能性があります(この場合、リモートDBAが解決する必要があるのは未確定の分散トランザクションです)。ただし、トランザクションが正常にコミットされると、正しくコミットされます。一部の行がコミットされ、他の行がコミットされない、またはコミット前に存在しなかった重複行がコミットの動作によって作成される可能性はありません。

于 2012-01-30T17:07:02.227 に答える