GETUPDATEBEFORES | IGNOREUPDATEBEFORES

Gültig für

Extrakt und Replicat

Beschreibung

Verwenden Sie die Parameter GETUPDATEBEFORES und IGNOREUPDATEBEFORES, um zu steuern, ob die Before Images von Spalten in UPDATE-Vorgängen in den Datensätzen enthalten sind, die von Oracle GoldenGate verarbeitet werden. Bevor Bilder Spaltendetails enthalten, die vor der Aktualisierung einer Zeile vorhanden waren.

(nur von Oracle) Oracle GoldenGate erfasst standardmäßig sowohl die Werte vor als auch nach der Änderung für Aktualisierungsvorgänge in einem einzigen einheitlichen Aktualisierungsdatensatz. Bei anderen Datenbanken werden nur die Werte vor der Änderung in die Traildatei geschrieben. In früheren Releases wurde standardmäßig nur der Wert nach der Änderung erfasst. Ab diesem Release werden benutzerdefinierte SQL-Anweisungen (SQLEXEC) jetzt nur einmal pro Aktualisierungsvorgang mit dem neuen Standardaktualisierungsformat ausgeführt. Vor diesem Release werden benutzerdefinierte SQL-Anweisungen zweimal ausgeführt, einmal beim Voreinstellungswert und einmal beim Nach-Änderungswert. Wenn Sie Oracle GoldenGate mit dem einheitlichen Aktualisierungsformat verwenden, können Sie den Vorab- oder Postwert mit den Funktionen @BEFORE, @AFTER und @BEFOREAFTER explizit an die benutzerdefinierte SQL-Anweisung übergeben. Obwohl Oracle GoldenGate dieses Aktualisierungsformat standardmäßig verwenden kann, wird die alte Format-Cam beibehalten, wenn widersprüchliche Parameter vorhanden sind, die zuvor zwei separate Vor- und Nach-Änderungsdatensätze generiert hätten. In diesen Fällen wird eine Informationsmeldung in der Berichtsdatei protokolliert.

Verwenden Sie den Parameter GETUPDATEBEFORES wie folgt:

Sie können vor Bildern mit Nachbildern vergleichen, um die Nettoergebnisse einer Transaktion zu ermitteln oder andere Delta-Berechnungen durchzuführen. Beispiel: Wenn ein BALANCE-Feld $100 vor einem Update und $120 danach beträgt, zeigt ein Vergleich die Differenz von $20 an. Mit den Spaltenkonvertierungsfunktionen von Oracle GoldenGate können Sie die Vergleiche und Berechnungen durchführen.

Um vor Bildern in der Parameterdatei zu referenzieren, verwenden Sie die Konvertierungsfunktion @BEFORE. Beispiel:

COLMAP (previous = @BEFORE (balance))

GETUPDATEBEFORES ist erforderlich, wenn die CDR-(Conflict Detection and Resolution-)Funktion verwendet wird. Weitere Informationen zu CDR finden Sie unter Manuelle Konflikterkennung und -auflösung.

Die Parameter GETUPDATEBEFORES und IGNOREUPDATEBEFORES sind tabellenspezifisch. Ein Parameter bleibt für alle nachfolgenden TABLE- oder MAP-Anweisungen gültig, bis der andere Parameter gefunden wird.

Da Sie diese Parameter zwischen MAP-Anweisungen selektiv aktivieren oder deaktivieren können, können Sie sie für verschiedene Threads eines koordinierten Replicats aktivieren oder deaktivieren. Geben Sie die GETUPDATEBEFORES-Threads in einer Gruppe von MAP-Anweisungen an, und geben Sie die IGNOREUPDATEBEFORES-Threads in einer anderen Gruppe von MAP-Anweisungen an.

Einschränkungen für GETUPDATESBEFORES:

Standard

IGNOREUPDATEBEFORES

Syntax

GETUPDATEBEFORES | IGNOREUPDATEBEFORES

Beispiel

Dieses Beispiel zeigt, wie Sie GETUPDATEBEFORES und IGNOREUPDATEBEFORES selektiv auf verschiedene MAP-Anweisungen anwenden können, von denen jede einen anderen Thread eines koordinierten Replicats darstellt.

GETUPDATEBEFORES
MAP sales.cust, TARGET sales.cust, THREAD (1);
MAP sales.ord, TARGET sales.ord, THREAD (2);
IGNOREUPDATEBEFORES
MAP sales.loc, TARGET sales.loc, THREAD (3);