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
親トピック: ユーザー・イグジット・ファンクション