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

前
次

6.49 SET_RECORD_BUFFER

適用対象

ExtractおよびReplicat

説明

SET_RECORD_BUFFERファンクションは、ユーザー・イグジットとの互換性の維持、および複雑なデータ・レコード操作のために使用します。このファンクションでは、レコード全体を操作します。データ・レコード・バッファを直接正確に変更するには、Oracle GoldenGate内部レコード・フォーマットを把握する必要があるため、変更を行うときは、レコード全体ではなく個々の列値を変更する方法が最適です。列値を変更するには、SET_COLUMN_VALUE_BY_INDEXおよびSET_COLUMN_VALUE_BY_NAMEファンクションを使用します。ユーザー・イグジット内のこれらのファンクションで、ほとんどのカスタム・マッピングを十分に処理できます。

構文

#include "usrdecs.h"
short result_code;
record_def record;
ERCALLBACK (SET_RECORD_BUFFER, &record_def, &result_code);

バッファ

typedef struct
{
char *table_name;
char *buffer;
long length;
char before_after_ind;
short io_type;
short record_type;
short transaction_ind;
int64_t timestamp;
exit_ts_str io_datetime;
short mapped;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION   */
char requesting_before_after_ind;
} record_def;

入力

buffer

新しいレコード・バッファへのポインタ。通常、bufferはタイプexit_rec_buf_defのバッファへのポインタです。exit_rec_buf_defバッファには、ExtractまたはReplicatによってまもなく処理される実際のレコードが含まれます。このバッファは、コール・タイプがEXIT_CALL_DISCARD_RECORDのときに指定されます。イグジット・ルーチンは、たとえばカスタム・マッピング・ファンクションを実行するために、このバッファの内容を変えることがあります。

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

length

新しいレコード・バッファの長さ。

出力

なし

返される値

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED