COMPRESS_RECORD

Valido per

Estrai e Replicat

Descrizione

Utilizzare la funzione COMPRESS_RECORD per comprimere di nuovo i record decompressi con la funzione DECOMPRESS_RECORD. Chiamare COMPRESS_RECORD solo dopo aver utilizzato DECOMPRESS_RECORD.

Il contenuto del buffer di record non viene convertito nel o dal set di caratteri dell'uscita utente. È passato così com'è.

Sintassi

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

Input

<decompressed_rec>

Puntatore al buffer contenente il record prima della compressione. Si presuppone che il record sia nel formato canonico predefinito di Oracle GoldenGate.

<decompressed_len>

Lunghezza del record decompresso.

<source_or_target>

Una delle seguenti opzioni indica se il record di origine o di destinazione viene compresso.

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

<requesting_before_after_ind>

Utilizzato come input interno. Non è necessario impostarlo. Se impostato, verrà ignorato.

<columns_present>

Array di valori che indica le colonne presenti nel record compresso. Ad esempio, se nel record compresso sono presenti la prima, la terza e la sesta colonna e il numero totale di colonne nella tabella è sette, l'array deve contenere:

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

Utilizzare la funzione GET_TABLE_COLUMN_COUNT per ottenere il numero di colonne nella tabella (vedere "GET_TABLE_COLUMN_COUNT").

Output

<compressed_rec>

Un puntatore al record restituito in formato compresso. In genere, compressed_rec è un puntatore a un buffer di tipo exit_rec_buf_def. Il buffer exit_rec_buf_def contiene il record effettivo che verrà elaborato da Extract o Replicat. Il buffer viene fornito quando il tipo di chiamata è EXIT_CALL_DISCARD_RECORD. Le routine di uscita possono modificare il contenuto di questo buffer, ad esempio per eseguire funzioni di mapping personalizzate. Il chiamante deve assicurarsi che la quantità di memoria appropriata sia allocata a compressed_rec.

<compressed_len>

La lunghezza restituita del record compresso.

Valori restituiti

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK
EXIT_FN_RET_INVALID_PARAM