SET_RECORD_BUFFER

유효 기간

추출 및 복제

설명

사용자 출구와의 호환성 및 복잡한 데이터 레코드 조작을 위해 SET_RECORD_BUFFER 함수를 사용합니다. 이 함수는 전체 레코드를 조작합니다. 데이터 레코드 버퍼를 직접 정확하게 수정하려면 Oracle GoldenGate 내부 레코드 형식을 알아야 하므로 전체 레코드가 아닌 개별 열 값을 수정하는 것이 가장 좋습니다. 열 값을 수정하려면 SET_COLUMN_VALUE_BY_INDEX 및 SET_COLUMN_VALUE_BY_NAME 함수를 사용합니다. 이러한 기능은 User Exit 내에서 대부분의 사용자 정의 매핑을 처리하기에 충분합니다.

구문

#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일 때 제공됩니다. 종료 루틴은 예를 들어 사용자 정의 매핑 기능을 수행하기 위해 이 버퍼의 내용을 변경할 수 있습니다.

레코드 버퍼의 내용은 User Exit의 문자 집합으로 변환되거나 User Exit의 문자 집합에서 변환되지 않습니다. 현재 상태로 전달됩니다.

<length>

레코드 버퍼의 새 길이입니다.

출력

없음

반환 값

EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED