源字符集

有效对象

复制

说明

使用 SOURCECHARSET 参数可以控制数据从源字符集转换为复制设置的目标字符集。默认情况下,Replicat 会转换版本 11.2.1 及更高版本的字符集,但您可能需要在以下情况下进行干预:

Replicat 使用 SOURCECHARSET 字符集时会发出警告消息。

使用 REPLACEBADCHAR 参数处理源数据中有无效字符或目标字符集不支持源字符的验证错误。它提供了以下选项:在这些错误上异常终止、跳过导致错误的记录或为字符指定替代值。

默认值

无

语法

SOURCECHARSET {<source_charset> | PASSTHRU | OVERRIDE} [DB2ZOS]

<source_charset>

指定提取版本早于 11.2.1 的数据的源字符集。Replicat 在将字符类型列转换为目标字符集时使用指定的字符集。

对于 <source_charset>,指定表示源数据库的相应字符集标识符。

对于 Oracle,如果未指定 SOURCECHARSET,但目标上存在 NLS_LANG 环境变量,则 Replicat 将 NLS_LANG 值用作源数据库字符集。如果不存在 SOURCECHARSET 和 NLS_LANG,复制将异常终止以防止可能的数据损坏。

PASSTHRU

PASSTHRU

强制 Replicat 应用数据而不转换字符集。字符集差异被忽略,如下所示:

如果指定了 PASSTHRU,且 MAP 语句中存在 CHAR/VARCHAR/CLOB 与 NCHAR/NVARCHAR/NCLOB 之间的映射,复制将异常终止。

如果指定 PASSTHRU 模式时,任何 Oracle GoldenGate 列映射函数都用于基于字符的列,Replicat 会发出警告消息,并将这些函数的结果转换为目标数据库字符集,然后再将它们映射到目标列。

仅当确定源字符集和目标字符集兼容时,才应使用 PASSTHRU。如果您不确定 PASSTHRU 是否适用于您的环境,请先联系 Oracle 技术支持,然后再使用它。

OVERRIDE

强制复制使用指定的字符集,从而覆盖线索文件中的源数据库字符集。此选项将覆盖字符类型列字符集,但以下情况除外:

z/OS 的 DB2

对 z/OS 对 Db2 有效。

如果包含来自 z/OS 平台的 Db2 数据的线索版本为 Oracle GoldenGate 12.1 或更低版本,则为必需字段。此参数可确保 Replicat 识别数据来自 z/OS 上的 Db2,这允许混合使用 ASCII 和 EBCDIC 字符格式。

示例

示例 1

SOURCECHARSET ISO-8859-9

示例 2

SOURCECHARSET PASSTHRU

示例 3

SOURCECAHRSET JA16EUC

示例 4

SOURCECHARSET OVERRIDE WE8ISO8859P15