GETUPDATEBEFORES | IGNOREUPDATEBEFORES

Válido para

Extraer y Replicat

Descripción

Utilice los parámetros GETUPDATEBEFORES y IGNOREUPDATEBEFORES para controlar si las imágenes anteriores de las columnas en las operaciones UPDATE se incluyen o no en los registros procesados por Oracle GoldenGate. Antes de que las imágenes contengan detalles de columna que existían antes de que se actualizara una fila.

(Solo para Oracle) Oracle GoldenGate captura los valores previos y posteriores al cambio para las operaciones de actualización en un único registro de actualización unificado por defecto. Para otras bases de datos, solo los valores previos al cambio se escriben en el archivo de pista. En versiones anteriores, el valor predeterminado era capturar únicamente el valor posterior al cambio. A partir de esta versión, las sentencias SQL personalizadas (SQLEXEC) ahora solo se ejecutan una vez por operación de actualización con el nuevo formato de actualización por defecto. Antes de esta versión, las sentencias SQL personalizadas se ejecutarían dos veces, una al encontrar el valor previo al cambio y otra al encontrar el valor posterior al cambio. Si utiliza Oracle GoldenGate con el formato de actualización unificado, puede transferir explícitamente el valor anterior o posterior a la sentencia SQL personalizada mediante las funciones @BEFORE, @AFTER y @BEFOREAFTER. Aunque Oracle GoldenGate puede utilizar este formato de actualización por defecto, la cámara de formato antigua se conserva si hay parámetros en conflicto que hubieran generado previamente dos registros de cambio anteriores y posteriores independientes. En estos casos, se registra un mensaje informativo en el archivo de informe.

Utilice el parámetro GETUPDATEBEFORES de la siguiente manera:

Puede comparar imágenes anteriores con imágenes posteriores para identificar los resultados netos de una transacción o realizar otros cálculos delta. Por ejemplo, si un campo BALANCE es $100 antes de una actualización y $120 después, una comparación mostraría la diferencia de $20. Puede utilizar las funciones de conversión de columnas de Oracle GoldenGate para realizar comparaciones y cálculos.

Para hacer referencia a imágenes anteriores en el archivo de parámetros, utilice la función de conversión @BEFORE. Por ejemplo:

COLMAP (previous = @BEFORE (balance))

GETUPDATEBEFORES es necesario cuando se utiliza la función Detección y resolución de conflictos (CDR). Consulte Manual Conflict Detection and Resolution para obtener más información sobre CDR.

Los parámetros GETUPDATEBEFORES y IGNOREUPDATEBEFORES son específicos de la tabla. Un parámetro permanece en vigor para todas las sentencias TABLE o MAP posteriores, hasta que se encuentre el otro parámetro.

Debido a que puede activar o desactivar de forma selectiva estos parámetros entre sentencias MAP, puede activarlos o desactivarlos para diferentes threads de un Replicat coordinado. Especifique los threads GETUPDATEBEFORES en un juego de sentencias MAP y especifique los threads IGNOREUPDATEBEFORES en un juego diferente de sentencias MAP.

Limitaciones para GETUPDATESBEFORES:

Valor por defecto

IGNOREUPDATEBEFORES

Sintaxis

GETUPDATEBEFORES | IGNOREUPDATEBEFORES

Ejemplo

En este ejemplo se muestra cómo puede aplicar GETUPDATEBEFORES y IGNOREUPDATEBEFORES de forma selectiva a diferentes sentencias MAP, cada una de las cuales representa un thread diferente de un Replicat coordinado.

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