プライマリ・コンテンツに移動
Oracle® GoldenGate Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.1.2)
E49845-08
  目次へ移動
目次

前
 
次
 

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