ÜBERDECKUNGEN | NOOVERRIDEDUPS
Gültig für
Replicat
Beschreibung
Verwenden Sie die Parameter OVERRIDEDUPS und NOOVERRIDEDUPS, um zu kontrollieren, ob Replicat einen vorhandenen Datensatz in der Zieldatenbank mit einem replizierten überschreiben oder nicht, wenn beide Datensätze denselben Schlüssel haben.
-
OVERRIDEDUPSüberschreibt den vorhandenen Datensatz. Sie kann für anfängliche Ladevorgänge verwendet werden, bei denen Zieltabellen vor dem Laden nicht abgeschnitten werden sollen, oder für die Neusynchronisierung einer Zieltabelle mit einer vertrauenswürdigen Quelle. Verwenden Sie den ParameterSQLDUPERRmitOVERRIDEUPS, um den numerischen Fehlercode anzugeben, der von der Datenbank für doppelteINSERT-Vorgänge zurückgegeben wird. Weitere Informationen finden Sie unter "SQLDUPERR". -
Die Standardeinstellung
NOOVERRIDEDUPSgeneriert einen Fehler beim Duplikatdatensatz, anstatt den vorhandenen Datensatz zu überschreiben. Sie können eine Exceptions-AnweisungMAPmit einerSQLEXEC-Klausel verwenden, um eine Antwort auf den Fehler zu initiieren. Andernfalls kann die Transaktion abgebrochen werden.Um doppelte Datensätze zu umgehen, ohne den Abbruch von Replicat zu verursachen, wenn keine Exception-Zuordnung verfügbar ist, geben Sie eine
REPERROR-Parameteranweisung ähnlich der folgenden an, wobei<error>die Datenbankfehlernummer für Primärschlüssel-Constraint-Fehler ist.
REPERROR (<error>, IGNORE)
Beispiel: Die Anweisung für eine Oracle AI Database lautet:
REPERROR (1, IGNORE)
Replicat schreibt ignorierte doppelte Datensätze in die Discard-Datei.
Setzen Sie OVERRIDEDUPS oder NOOVERRIDEDUPS vor die TABLE- oder MAP-Anweisungen, die Sie beeinflussen möchten. Sie können verschiedene Regeln für verschiedene Gruppen von TABLE- oder MAP-Anweisungen erstellen. Die Parameter fungieren als Umschalter: Eine bleibt für nachfolgende TABLE- oder MAP-Anweisungen wirksam, bis die andere erkannt wird.
OVERRIDEDUPS wird automatisch aktiviert, wenn HANDLECOLLISIONS verwendet wird. Weitere Informationen finden Sie unter "HANDLECOLLISIONS | NOHANDLECOLLISIONS".
WARNING: Wenn OVERRIDEDUPS in Kraft ist, werden Datensätze möglicherweise nicht in chronologischer Reihenfolge über mehrere Replicat-Prozesse hinweg verarbeitet.
Standard
NOOVERRIDEDUPS
Syntax
OVERRIDEDUPS | NOOVERRIDEDUPS