GET_DDL_RECORD_PROPERTIES
유효 기간
Extract 및 Replicat - DDL 복제가 지원되는 데이터베이스용
설명
GET_DDL_RECORD_PROPERTIES 함수를 사용하여 DDL가 수행된 객체에 대한 정보와 DDL 문 자체의 텍스트를 포함한 DDL 작업을 반환합니다. 추출 프로세스는 출처 테이블 레이아웃만 가져올 수 있습니다. Replicat 프로세스는 소스 또는 대상 레이아웃을 가져올 수 있습니다.
User Exit의 문자 세션이 SET_SESSION_CHARSET로 운영 체제의 기본 문자 집합이 아닌 다른 값으로 설정되면(ucharset.h 파일의 ULIB_CS_DEFAULT에 정의됨) User Exit과 프로세스 간에 교환되는 문자 데이터가 세션 문자 집합에서 해석됩니다. 여기에는 DDL 유형, 객체 유형, 2개 또는 3개 부분 객체 이름, 소유자 이름 및 DDL 텍스트 자체가 포함됩니다.
#include "usrdecs.h"
short result_code;
ddl_record_def ddl_rec;
ERCALLBACK (GET_DDL_RECORD_PROPERTIES, &ddl_rec, &result_code);
버퍼
typedef struct
{
char *ddl_type;
long ddl_type_max_length; /* Maximum Description length PASSED IN BY USER */
long ddl_type_length; /* Actual length */
char *object_type;
long object_type_max_length; /* Maximum Description length PASSED IN BY USER */
long object_type_length; /* Actual length */
char *object_name; /* Fully qualified name of the object
(3-part for CDB, 2-part for non-CDB) */
long object_max_length; /* Maximum Description length PASSED IN BY USER */
long object_length; /* Actual length */
char *owner_name;
long owner_max_length; /* Maximum Description length PASSED IN BY USER */
long owner_length; /* Actual length */
char *ddl_text;
long ddl_text_max_length; /* Maximum Description length PASSED IN BY USER */
long ddl_text_length; /* Actual length */
short ddl_text_truncated; /* Was value truncated? */
short source_or_target; /* Source or target value? */
} ddl_record_def;
입력
<ddl_type_length> <object_type_length> <object_length> <owner_length> <ddl_text_length>
반환된 열 값을 받아들이기 위해 이러한 각 항목에 대해 하나의 버퍼에 대한 포인터입니다. 이러한 항목은 다음과 같습니다.
<ddl_type_length>
DDL 작업 유형의 길이(예: CREATE 또는 ALTER.)를 포함합니다.
<object_type_length>
DDL 작업의 영향을 받는 데이터베이스 객체 유형 길이(예: TABLE 또는 INDEX)를 포함합니다.
<object_length>
객체 이름 길이를 포함합니다.
<object_length>
객체(스키마 또는 데이터베이스)의 소유자 길이를 포함합니다.
<ddl_text_length>
실제 DDL 문 텍스트의 길이를 포함합니다.
<ddl_type_max_length>
*ddl_type에서 반환되는 DDL 작업 유형의 최대 길이입니다. DDL 유형은 데이터베이스에 적합한 DDL 명령(예: ALTER)입니다.
<object_type_max_length>
*object_type에서 반환되는 객체 유형의 최대 길이입니다. 객체 유형은 TABLE, INDEX 및 TRIGGER와 같이 데이터베이스에 적합한 객체입니다.
<object_max_length>
*object_name에서 반환되는 객체 이름의 최대 길이입니다.
<owner_max_length>
*owner_name에서 반환되는 소유자 이름의 최대 길이입니다.
<ddl_text_max_length>
*ddl_text에 의해 반환되는 DDL 문의 텍스트의 최대 길이입니다.
<source_or_target>
다음 중 하나는 출처 또는 대상 데이터 레코드에 대한 작업 유형을 반환할지 여부를 나타냅니다.
EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
출력
<ddl_type_length> <object_type_length> <object_length> <owner_length> <ddl_text_length>
이러한 모든 필드는 요청된 값의 실제 길이를 반환합니다. 자세한 내용은 입력을 참조하십시오.
<ddl_text_truncated>
DDL 텍스트가 잘렸는지 여부를 나타내는 플래그(0 또는 1)입니다. DDL 텍스트와 널 종료자의 길이가 최대 버퍼 길이를 초과하는 경우 잘립니다.
반환 값
EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INCOMPLETE_DDL_REC