Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX 12c (12.2.0.1) E70112-04 |
|
前 |
次 |
適用対象
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