SET_COLUMN_VALUE_BY_INDEX
유효 기간
추출 및 복제
설명
SET_COLUMN_VALUE_BY_INDEX 또는 SET_COLUMN_VALUE_BY_NAME 함수를 사용하여 전체 데이터 레코드를 조작하지 않고 단일 열 값을 수정할 수 있습니다. User Exit의 문자 세션이 SET_SESSION_CHARSET로 운영 체제의 기본 문자 집합이 아닌 다른 값으로 설정되면(ucharset.h 파일의 ULIB_CS_DEFAULT에 정의됨) User Exit과 프로세스 간에 교환되는 문자 데이터가 세션 문자 집합에서 해석됩니다.
다음 조건에 해당하는 경우에만 열 값이 세션 문자 집합으로 설정됩니다.
-
열 값은 SQL 문자 유형(
CHAR/VARCHAR2/CLOB,NCHAR/NVARCHAR2/NCLOB), SQL 날짜/시간 기록/간격/숫자 유형입니다. -
column_value_mode표시기는EXIT_FN_CNVTED_SESS_CHAR_FORMAT로 설정됩니다.
구문
#include "usrdecs.h"
short result_code;
column_def column;
ERCALLBACK (SET_COLUMN_VALUE_BY_INDEX, &column, &result_code);
버퍼
typedef struct
{
char *column_value;
unsigned short max_value_length;
unsigned short actual_value_length;
short null_value;
short remove_column;
short value_truncated;
short column_index;
char *column_name;
/* Version 3 CALLBACK_STRUCT_VERSION */
short column_value_mode;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION */
char requesting_before_after_ind;
char more_lob_data;
/* Version 3 CALLBACK_STRUCT_VERSION */
ULibCharSet column_charset;
} column_def;
입력
<column_value>
새 열 값을 나타내는 버퍼 포인터입니다.
<actual_value_length>
새 열 값의 길이(바이트)입니다. 새 열 값이 ASCII 형식인 경우 실제 길이에는 널 종료자가 포함되지 않아야 합니다.
<null_value>
새 열 값이 널인지 여부를 나타내는 플래그(0 또는 1)입니다. null_value 플래그가 1로 설정된 경우 데이터 레코드의 열 값이 널로 설정됩니다.
<remove_column>
압축된 업데이트(있는 경우)에서 열을 제거할지 여부를 나타내는 플래그(0 또는 1)입니다. 압축된 갱신은 모든 열 값이 아니라 변경된 열 값만 기록되는 갱신입니다. 이 플래그는 레코드에 대한 작업 유형이 UPDATE_COMP_SQL_VAL 또는 PK_UPDATE_SQL_VAL인 경우에만 설정해야 합니다.
<column_index>
데이터 레코드 버퍼에 복사할 새 열 값의 열 인덱스입니다. 열 인덱스는 0부터 시작합니다.
<column_value_mode>
열 값의 형식을 나타냅니다.
EXIT_FN_CHAR_FORMAT
ASCII 형식: 값은 널 종료 ASCII(또는 EBCDIC) 문자열입니다(UTF 8로 변환되는 하위 데이터 유형 UTF16_BE에 대해 알려진 예외). 주: 값이 ASCII 문자열로 해석되고 널로 종료되어야 하므로 User Exit에 표시되면 열 값이 잘릴 수 있습니다. 0의 첫번째 값은 문자열 종료자가 됩니다.
-
날짜는
CCYY-MM-DD HH:MI:SS.FFFFFF형식이며 소수 표시 시간은 데이터베이스에 따라 다릅니다. -
숫자 값은 문자열 형식입니다. 예를 들어,
123.45는'123.45'로 표시됩니다. -
인쇄할 수 없는 문자 또는 이진 값은 16진수 표기법으로 변환됩니다.
-
부동 소수점 유형은 처음 14자리 유효 숫자에 대해 널 종료 문자열로 출력됩니다.
EXIT_FN_RAW_FORMAT
내부 Oracle GoldenGate 정규 형식: 이 형식에는 해당하는 경우 2바이트 널 표시기와 2바이트 가변 데이터 길이가 포함됩니다. 모든 문자 데이터 유형에 대해 이 형식에 대해 Oracle GoldenGate에서 문자 집합 변환을 수행하지 않습니다.
EXIT_FN_CNVTED_SESS_CHAR_FORMAT
User Exit 문자 집합: 열 데이터 유형이 다음과 같은 경우에만 적용됩니다.
-
문자 기반 유형(단일 또는 멀티바이트)
-
문자열 표현이 있는 숫자 유형
이 형식은 널로 종료되지 않습니다.
<source_or_target>
소스 또는 대상 레코드가 수정되고 있는지 여부를 나타내는 다음 중 하나입니다.
EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
<requesting_before_after_ind>
UPDATE_COMP_PK_SQL_VAL의 레코드 io_type에서 열 값을 설정할 때 설정됩니다(기본 키 업데이트). 다음 중 하나를 사용하여 액세스해야 하는 기본 키 업데이트 부분을 나타냅니다. 기본값은 AFTER_IMAGE_VAL입니다.
-
BEFORE_IMAGE_VAL -
AFTER_IMAGE_VAL
출력
없음
반환 값
EXIT_FN_RET_BAD_COLUMN_DATA
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED
EXIT_FN_RET_INVALID_COLUMN_TYPE