SET_RECORD_BUFFER
有效對象
擷取與 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