GETUPDATEBEFORES | IGNOREUPDATEBEFORES

Durée de validité

Extraction et réplication

Description

Utilisez les paramètres GETUPDATEBEFORES et IGNOREUPDATEBEFORES pour déterminer si les images "avant" des colonnes dans les opérations UPDATE sont incluses dans les enregistrements traités par Oracle GoldenGate. Avant que les images contiennent des détails de colonne qui existaient avant la mise à jour d'une ligne.

(Oracle uniquement) Oracle GoldenGate capture par défaut les valeurs de pré-modification et de post-modification pour les opérations de mise à jour dans un seul enregistrement de mise à jour unifié. Pour les autres bases de données, seules les valeurs de pré-modification sont écrites dans le fichier trace. Dans les versions précédentes, la valeur par défaut était de capturer uniquement la valeur après modification. A partir de cette version, les instructions SQL personnalisées (SQLEXEC) s'exécutent désormais une seule fois par opération de mise à jour avec le nouveau format de mise à jour par défaut. Avant cette version, les instructions SQL personnalisées s'exécutaient deux fois, une fois pour la valeur de pré-changement et une fois pour la valeur de post-changement. Si vous utilisez Oracle GoldenGate avec le format de mise à jour unifié, vous pouvez transmettre explicitement la pré ou la post-valeur à l'instruction SQL personnalisée à l'aide des fonctions @BEFORE, @AFTER et @BEFOREAFTER. Bien qu'Oracle GoldenGate puisse utiliser ce format de mise à jour par défaut, l'ancienne caméra de format est conservée s'il existe des paramètres en conflit qui auraient précédemment généré deux enregistrements distincts avant et après la modification. Dans ce cas, un message d'information est consigné dans le fichier de rapport.

Utilisez le paramètre GETUPDATEBEFORES comme suit :

Vous pouvez comparer les images avant et après pour identifier les résultats nets d'une transaction ou effectuer d'autres calculs delta. Par exemple, si un champ BALANCE est $100 avant une mise à jour et $120 après, une comparaison indiquerait la différence de $20. Vous pouvez utiliser les fonctions de conversion de colonne d'Oracle GoldenGate pour effectuer les comparaisons et les calculs.

Pour référencer des images antérieures dans le fichier de paramètres, utilisez la fonction de conversion @BEFORE. Exemple :

COLMAP (previous = @BEFORE (balance))

GETUPDATEBEFORES est requis lors de l'utilisation de la fonctionnalité de détection et de résolution des conflits (CDR). Reportez-vous à la section Manual Conflict Detection and Resolution pour plus d'informations sur CDR.

Les paramètres GETUPDATEBEFORES et IGNOREUPDATEBEFORES sont propres à la table. Un paramètre reste en vigueur pour toutes les instructions TABLE ou MAP suivantes, jusqu'à ce que l'autre paramètre soit rencontré.

Etant donné que vous pouvez activer ou désactiver ces paramètres de manière sélective entre les instructions MAP, vous pouvez les activer ou les désactiver pour différents threads d'une réplication coordonnée. Indiquez les threads GETUPDATEBEFORES dans un ensemble d'instructions MAP et indiquez les threads IGNOREUPDATEBEFORES dans un autre ensemble d'instructions MAP.

Limites pour GETUPDATESBEFORES :

Valeur par défaut

IGNOREUPDATEBEFORES

Syntaxe

GETUPDATEBEFORES | IGNOREUPDATEBEFORES

Exemple

Cet exemple montre comment appliquer GETUPDATEBEFORES et IGNOREUPDATEBEFORES de manière sélective à différentes instructions MAP, chacune représentant un thread différent d'une réplication coordonnée.

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);