MAP文の説明

次に、MAP文について説明します。

  • COMPARECOLSでは、更新および削除のReplicat WHERE句において、証跡レコード内のすべての列の変更前イメージを使用します。

  • DEFAULTでは、すべての競合タイプの列グループとしてすべての列を使用します。そのため、解決はすべての列に適用されます。

  • INSERTROWEXISTS競合には、USEMAX解決を使用します。つまり、挿入時に行が存在する場合は、last_mod_time列を解決列として使用し、証跡の値とデータベースの値のどちらが大きいかを判別します。証跡の値の方が大きい場合、レコードを適用しますが、挿入を更新に変更します。データベースの値の方が大きい場合、レコードを無視します。

  • UPDATEROWEXISTS競合には、USEMAX解決を使用します。つまり、更新時に行が存在する場合は、last_mod_time列を解決列として使用します。証跡の値の方が大きい場合、更新を適用します。

  • USEMINUSEMAXを使用し、値がまったく同じ場合、RESOLVECONFLICTはトリガーされず、受け取った行は無視されます。USEMINEQUSEMAXEQを使用し、値がまったく同じ場合、解決策はトリガーされます。

  • DELETEROWEXISTS競合には、OVERWRITE解決を使用します。つまり、削除操作時に行が存在する場合は、削除を適用します。

  • UPDATEROWMISSING競合には、OVERWRITE解決を使用します。つまり、更新時に行が存在しない場合は、更新を挿入に変更して適用します。

  • DELETROWMISSING競合には、DISCARD解決を使用します。つまり、削除操作時に行が存在しない場合は、証跡レコードを破棄します。

    ノート:

    USEMAXのかわりにUSEMAXEQ解決を使用すると、>=条件を適用できます。詳細は、Oracle GoldenGateパラメータおよび機能リファレンスを参照してください。