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