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