主コンテンツへ
Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.2.0.1)
E70112-04
目次へ移動
目次

前
次

6.8 COMPRESS_RECORD

適用対象

ExtractおよびReplicat

説明

COMPRESS_RECORDファンクションでは、DECOMPRESS_RECORDファンクションで解凍されたレコードを再度圧縮します。COMPRESS_RECORDは、DECOMPRESS_RECORDを使用したにのみ使用します。

レコード・バッファの内容は、ユーザー・イグジットのキャラクタ・セットとの変換が行われません。これはそのままで渡されます。

構文

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

バッファ

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;

入力

decompressed_rec

圧縮前レコードが含まれるバッファへのポインタ。レコードは、デフォルトのOracle GoldenGate正規フォーマットとみなされます。

decompressed_len

解凍されたレコードの長さ。

source_or_target

ソースまたはターゲットのどちらのレコードが圧縮されているかを示す次のいずれか。

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
requesting_before_after_ind

内部入力として使用されます。設定は不要です。設定しても無視されます。

columns_present

圧縮レコード内に存在する列を示す値の配列。たとえば、圧縮レコードに1番目、3番目、6番目の列が存在し、表内の列数の合計が7の場合、配列に次を含む必要があります。

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

表内の列数を取得するには、GET_TABLE_COLUMN_COUNTファンクションを使用します(GET_TABLE_COLUMN_COUNTを参照してください)。

出力

compressed_rec

圧縮フォーマットで返されるレコードへのポインタ。通常、compressed_recはタイプexit_rec_buf_defのバッファへのポインタです。exit_rec_buf_defバッファには、ExtractまたはReplicatによってまもなく処理される実際のレコードが含まれます。このバッファは、コール・タイプがEXIT_CALL_DISCARD_RECORDのときに指定されます。イグジット・ルーチンは、たとえばカスタム・マッピング・ファンクションを実行するために、このバッファの内容を変えることがあります。コール元は、compressed_recに割り当てる適切な量のメモリーを確保する必要があります。

compressed_len

返される圧縮レコードの長さ。

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_OK
EXIT_FN_RET_INVALID_PARAM