主コンテンツへ
Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.2.0.1)
E70112-04
目次へ移動
目次

前
次

3.125 OVERRIDEDUPS | NOOVERRIDEDUPS

適用対象

Replicat

説明

OVERRIDEDUPSおよびNOOVERRIDEDUPSパラメータでは、両方のレコードが同一のキーを持つときに、Replicatがターゲット・データベースの既存のレコードをレプリケートされたレコードで上書きするかどうかを制御します。

  • OVERRIDEDUPSでは、既存のレコードを上書きします。ロード前にターゲット表の切捨てを行わない初期ロードや、信頼できるソースとターゲット表の再同期のときに使用できます。SQLDUPERRパラメータをOVERRIDEUPSとともに使用して、データベースによって返される重複INSERT操作の数値エラー・コードを指定します。詳細は、SQLDUPERRを参照してください。

  • NOOVERRIDEDUPS (デフォルト)は、既存のレコードを上書きするかわりに、重複レコード・エラーを生成します。例外MAP文とSQLEXEC句を使用して、エラーに対するレスポンスを開始できます。そうしない場合、トランザクションは異常終了することがあります。例外マップの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。

    例外マップが使用できない場合にReplicatを異常終了させずに重複レコードをバイパスするには、次のようなREPERRORパラメータ文を指定します(errorは、主キー制約エラーに対するデータベース・エラー番号です)。

    REPERROR (error, IGNORE)
    

    たとえば、Oracleデータベースの場合、この文は次のようになります。

    REPERROR (1, IGNORE)
    

    Replicatは、無視された重複レコードを破棄ファイルに書き込みます。

OVERRIDEDUPSまたはNOOVERRIDEDUPSは、適用するTABLEまたはMAP文よりも前に指定します。TABLEまたはMAP文の様々なグループごとに異なるルールを作成できます。パラメータの動作は切り替わります。つまり、1つのパラメータが後続のTABLEまたはMAP文に対して有効であるのは、別のパラメータが出現するまでです。

OVERRIDEDUPSは、HANDLECOLLISIONSが使用されると自動的に有効になります。詳細は、HANDLECOLLISIONS | NOHANDLECOLLISIONSを参照してください。

警告:

OVERRIDEDUPSが有効な場合は、複数のReplicatプロセスにわたってレコードが時系列順に処理されない場合があります。

デフォルト

NOOVERRIDEDUPS

構文

OVERRIDEDUPS | NOOVERRIDEDUPS