DECOMPRESS_RECORD

Válido Para

Extract e Replicat

Descrição

Use a função DECOMPRESS_RECORD quando quiser recuperar ou manipular um registro de atualização inteiro com a função GET_RECORD_BUFFER (consulte "GET_RECORD_BUFFER") ou SET_RECORD_BUFFER (consulte) e o registro seja compactado. DECOMPRESS_RECORD torna os registros compactados mais fáceis de processar e mapear, colocando o registro em seu layout de coluna lógica. As colunas que estão presentes estarão nas posições esperadas sem os indicadores de índice e comprimento (consulte "Formato de Registro Compactado"). As colunas ausentes serão representadas como zeros. Quando usado, DECOMPRESS_RECORD deve ser chamado antes de qualquer manipulação ocorrer. Depois que o processamento da saída do usuário for concluído, use a função COMPRESS_RECORD (consulte) para recomprimir o registro antes de retorná-lo ao processo do Oracle GoldenGate.

Esta função é válida somente para operações de processamento UPDATE. As exclusões, inserções e atualizações aparecem no buffer como imagens de registro completo.

O conteúdo do buffer de registro não é convertido para ou a partir do conjunto de caracteres da saída do usuário. Foi informado como está.

Formato de registro compactado

As atualizações SQL compactadas têm o seguinte formato:

<index> <length> <value> [<index> <length> <value> ][...]

onde:

Sintaxe

#include "usrdecs.h"
short result_code;
compressed_rec_def compressed_rec;
ERCALLBACK (DECOMPRESS_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

<compressed_rec>

Um ponteiro para o registro em formato compactado. Use a função GET_RECORD_BUFFER para obter esse valor (consulte "GET_RECORD_BUFFER").

<compressed_len>

O comprimento do registro compactado. Use a função GET_RECORD_BUFFER (consulte "GET_RECORD_BUFFER") ou GET_RECORD_LENGTH (consulte) para obter esse valor.

<source_or_target>

Uma das opções a seguir indica se o registro de origem ou de destino está sendo descompactado.

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

<requesting_before_after_ind>

Usado como entrada interna. Não é necessário definir. Se definido, será ignorado.

Saída

<decompressed_rec>

Um ponteiro para o registro retornado em formato descompactado. O registro é considerado no formato canônico interno do Oracle GoldenGate. O chamador deve garantir que a quantidade apropriada de memória seja alocada para decompressed_rec.

<decompressed_len>

O comprimento retornado do registro descompactado.

<columns_present>

Uma matriz de valores que indica as colunas presentes no registro compactado. Por exemplo, se a primeira, terceira e sexta colunas existirem no registro compactado e o número total de colunas na tabela for sete, a matriz deverá conter:

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

Esse array ajuda as funções de mapeamento a determinar quando e se uma coluna compactada deve ser mapeada.

Valores de Retorno

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK
EXIT_FN_RET_INVALID_PARAM