COMPRESS_RECORD

Gültig für

Extract und Replicat

Beschreibung

Mit der Funktion COMPRESS_RECORD können Sie Datensätze, die mit der Funktion DECOMPRESS_RECORD dekomprimiert wurden, erneut komprimieren. Rufen Sie COMPRESS_RECORD erst auf, nachdem Sie DECOMPRESS_RECORD verwendet haben.

Der Inhalt des Datensatzpuffers wird nicht in oder aus dem Zeichensatz des User Exit konvertiert. Wird unverändert übergeben.

Syntax

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

Puffer

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;

Eingabe

<decompressed_rec>

Ein Zeiger auf den Puffer, der den Datensatz vor der Komprimierung enthält. Es wird davon ausgegangen, dass der Datensatz das standardmäßige kanonische Oracle GoldenGate-Format aufweist.

<decompressed_len>

Die Länge des dekomprimierten Datensatzes.

<source_or_target>

Eine der folgenden Optionen gibt an, ob der Quell- oder Zieldatensatz komprimiert wird.

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

<requesting_before_after_ind>

Wird als interne Eingabe verwendet. Muss nicht festgelegt werden. Wird diese Einstellung gesetzt, wird sie ignoriert.

<columns_present>

Ein Array von Werten, das die im komprimierten Datensatz vorhandenen Spalten angibt. Beispiel: Wenn die erste, dritte und sechste Spalte im komprimierten Datensatz vorhanden sind und die Gesamtzahl der Spalten in der Tabelle sieben beträgt, sollte das Array Folgendes enthalten:

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

Mit der Funktion GET_TABLE_COLUMN_COUNT können Sie die Anzahl der Spalten in der Tabelle abrufen (siehe "GET_TABLE_COLUMN_COUNT").

Ausgabe

<compressed_rec>

Ein Zeiger auf den Datensatz, der im komprimierten Format zurückgegeben wird. Normalerweise ist compressed_rec ein Zeiger auf einen Puffer vom Typ exit_rec_buf_def. Der Puffer exit_rec_buf_def enthält den tatsächlichen Datensatz, der von Extract oder Replicat verarbeitet werden soll. Der Puffer wird angegeben, wenn der Aufruftyp EXIT_CALL_DISCARD_RECORD ist. Beendigungsroutinen können den Inhalt dieses Puffers ändern, z.B. um benutzerdefinierte Zuordnungsfunktionen auszuführen. Der Aufrufer muss sicherstellen, dass die entsprechende Speichermenge compressed_rec zugewiesen wird.

<compressed_len>

Die zurückgegebene Länge des komprimierten Datensatzes.

Rückgabewerte

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK
EXIT_FN_RET_INVALID_PARAM