Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX 12c (12.2.0.1) E70112-04 |
|
前 |
次 |
適用対象
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