HOW TO: Set the Oracle NLS_LANG environment variable你 将托管Informatica Services的计算机上的NLS_LANG环境变量设置为Oracle客户端操作系统正在使用的值。 对我来说,“Oracle客户端操作系统正在使用的价值”是什么意思还不清楚。 如果Informatica在Linux/Unix上运行,则可能很容易。 在Windows上,你实际上有两个字符集。OEM代码页适用于控制台(又名DOS窗口)和ANSI代码页通常适用于GUI应用程序。 您可以使用命令chcp询问(和修改)的OEM代码页 可以从注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\ACP获取的ANSI代码页,用于从National Language Support (NLS) API Reference获取 我不知道哪一个适用于Informatica,但您应该可以尝试。
The Problem was in code type in target database. Client support utf16.
I decieded to solve it with translate function.
create or replace function fix_kaz_letters(p_word in varchar2) return varchar2 deterministic
PARALLEL_ENABLE is
c_bad_letters CONSTANT VARCHAR2(18 CHAR) := CHR(1112 USING NCHAR_CS) /*ә*/
|| CHR(1032 USING NCHAR_CS) /*Ә*/
|| CHR(1110 USING NCHAR_CS) /*і*/
|| CHR(1030 USING NCHAR_CS) /*І*/
|| CHR(1169 USING NCHAR_CS) /*ө*/
|| CHR(1168 USING NCHAR_CS) /*Ө*/
|| CHR(1111 USING NCHAR_CS) /*ү*/
|| CHR(1031 USING NCHAR_CS) /*Ү*/
|| CHR(1118 USING NCHAR_CS) /*ұ*/
|| CHR(1038 USING NCHAR_CS) /*Ұ*/
|| CHR(1171 USING NCHAR_CS) /*ғ*/
|| CHR(1170 USING NCHAR_CS) /*Ғ*/
|| CHR(1179 USING NCHAR_CS) /*қ*/
|| CHR(1178 USING NCHAR_CS) /*Қ*/
|| CHR(1187 USING NCHAR_CS) /*ң*/
|| CHR(1186 USING NCHAR_CS) /*Ң*/
;
c_kaz_letters CONSTANT VARCHAR2(18 NCHAR) := CHR(1241 USING NCHAR_CS) /*ә*/
|| CHR(1240 USING NCHAR_CS) /*Ә*/
|| CHR(1110 USING NCHAR_CS) /*і*/
|| CHR(1030 USING NCHAR_CS) /*І*/
|| CHR(1257 USING NCHAR_CS) /*ө*/
|| CHR(1256 USING NCHAR_CS) /*Ө*/
|| CHR(1199 USING NCHAR_CS) /*ү*/
|| CHR(1198 USING NCHAR_CS) /*Ү*/
|| CHR(1201 USING NCHAR_CS) /*ұ*/
|| CHR(1200 USING NCHAR_CS) /*Ұ*/
|| CHR(1108 USING NCHAR_CS) /*ғ*/
|| CHR(1028 USING NCHAR_CS) /*Ғ*/
|| CHR(1116 USING NCHAR_CS) /*қ*/
|| CHR(1036 USING NCHAR_CS) /*Қ*/
|| CHR(1109 USING NCHAR_CS) /*ң*/
|| CHR(1029 USING NCHAR_CS) /*Ң*/
;
begin
return translate(p_word, c_bad_letters, c_kaz_letters);
end;
2条答案
按热度按时间r55awzrz1#
HOW TO: Set the Oracle NLS_LANG environment variable你
将托管Informatica Services的计算机上的NLS_LANG环境变量设置为Oracle客户端操作系统正在使用的值。
对我来说,“Oracle客户端操作系统正在使用的价值”是什么意思还不清楚。
如果Informatica在Linux/Unix上运行,则可能很容易。
在Windows上,你实际上有两个字符集。OEM代码页适用于控制台(又名DOS窗口)和ANSI代码页通常适用于GUI应用程序。
您可以使用命令
chcp
询问(和修改)的OEM代码页可以从注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\ACP
获取的ANSI代码页,用于从National Language Support (NLS) API Reference获取我不知道哪一个适用于Informatica,但您应该可以尝试。
yh2wf1be2#
字符串