COMPRESS_RECORD

Válido para

Extraer y Replicat

Descripción

Utilice la función COMPRESS_RECORD para volver a comprimir registros que se han descomprimido con la función DECOMPRESS_RECORD. Llame a COMPRESS_RECORD solo después de utilizar DECOMPRESS_RECORD.

El contenido del buffer de registro no se convierte en el juego de caracteres de la salida de usuario ni desde él. Se aprueba tal cual.

Sintaxis

#include "usrdecs.h"
short result_code;
compressed_rec_def compressed_rec;
ERCALLBACK (COMPRESS_RECORD, &compressed_rec, &result_code);

Buffer

typedef struct
{
char *compressed_rec;
long compressed_len;
char *decompressed_rec;
long decompressed_len;
short *columns_present;
short source_or_target;
char requesting_before_after_ind;
} compressed_rec_def;

Entrada

<decompressed_rec>

Un puntero al buffer que contiene el registro antes de la compresión. Se asume que el registro tiene el formato canónico por defecto de Oracle GoldenGate.

<decompressed_len>

La longitud del registro descomprimido.

<source_or_target>

Una de las siguientes opciones para indicar si el registro de origen o de destino se está comprimiendo.

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

<requesting_before_after_ind>

Se utiliza como entrada interna. No es necesario definirlo. Si se establece, se ignorará.

<columns_present>

Matriz de valores que indica las columnas presentes en el registro comprimido. Por ejemplo, si la primera, tercera y sexta columnas existen en el registro comprimido y el número total de columnas de la tabla es siete, la matriz debe contener:

1, 0, 1, 0, 0, 1, 0

Utilice la función GET_TABLE_COLUMN_COUNT para obtener el número de columnas de la tabla (consulte "GET_TABLE_COLUMN_COUNT").

Salida

<compressed_rec>

Un puntero al registro devuelto en formato comprimido. Normalmente, compressed_rec es un puntero a un buffer de tipo exit_rec_buf_def. El buffer exit_rec_buf_def contiene el registro real que va a procesar Extract o Replicat. El buffer se proporciona cuando el tipo de llamada es EXIT_CALL_DISCARD_RECORD. Las rutinas de salida pueden cambiar el contenido de este buffer, por ejemplo, para realizar funciones de asignación personalizadas. El emisor de llamada debe asegurarse de que la cantidad adecuada de memoria esté asignada a compressed_rec.

<compressed_len>

Longitud devuelta del registro comprimido.

Valores devueltos

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK
EXIT_FN_RET_INVALID_PARAM