COMPRESS_RECORD

유효 기간

추출 및 복제

설명

COMPRESS_RECORD 함수를 사용하여 DECOMPRESS_RECORD 함수로 압축 해제된 레코드를 다시 압축합니다. DECOMPRESS_RECORD를 사용한 후에만 COMPRESS_RECORD를 호출합니다.

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

구문

#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>

압축된 레코드에 있는 열을 나타내는 값 배열입니다. 예를 들어, 압축된 레코드에 첫번째, 세번째 및 여섯번째 열이 있고 테이블의 총 열 수가 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