SET_SESSION_CHARSET

有效对象

提取和复制

说明

使用 SET_SESSION_CHARSET 函数设置用户出口的字符集。用户出口会话的字符集指示在用户出口和调用程序进程(提取、数据泵、复制)之间使用的任何基于字符的回调结构成员的编码,包括元数据,例如(但不限于):

可在用户出口具有控制权的任何时间调用此函数。当用户出口设置会话字符集时,它将立即生效,并且所有字符值都将开始转换为指定的集。调用此函数的建议位置是调用类型 EXIT_CALL_START。

注意:SET_SESSION_CHARSET 不是线程安全的。

如果未调用 SET_SESSION_CHARSET,则会话将设置为操作系统的默认字符集,这是 ucharset.h 文件中的 ULIB_CS_DEFAULT 中的预定义枚举类型值。如果会话字符集是 ULIB_CS_DEFAULT 中的默认值,则 Oracle GoldenGate 不会对用户出口和调用方进程之间交换的字符类型值执行任何转换。此外,数据库的 object-name 元数据被视为操作系统的默认字符集。请记住,默认值可能不正确。

加载用户出口时以及调用 SET_SESSION_CHARSET 时,用户出口的字符集将输出到报告文件中。如果会话字符集为 ULIB_CS_DEFAULT,则会出现一条消息,指出未执行任何列数据字符集转换。

语法

#include usrdecs.h
short result_code;
session_def session_charset_def;
ERCALLBACK (SET_SESSION_CHARSET, &session_charset_def, &result_code);

缓冲区

typedef struct
{
ULibCharSet  session_charset;
} session_def;

输入

<session_charset>

会话字符集的有效值在头文件 ucharset.h 中定义。

输出

无

返回值

EXIT_FN_RET_OK