在UTF-8会话中从SAS读取Oracle数据 - 字符失去重音

5

在Unix服务器上运行SAS 9.4 M6,使用SAS EG 8.1客户端。

当从Oracle(版本10g release 10.2.0.4.0)读取数据时,特殊字符如“é”、“â”会被去除重音,因此我们最终得到的是“e”、“a”。无论是使用libname还是proc sql pass through,结果都一样。

libname ken oracle path=u1 SCHEMA=KEN_DEVLP1 user=[user] PASSWORD=[pwd];

我们需要能够正确读取和查看UTF-8latin9会话中的数据。

Oracle数据库的NLS_CHARACTERSETAL32UTF8NLS_NCHAR_CHARACTERSETAL16UTF16,获取方式如下:

select * from nls_database_parameters where parameter like '%CHARACTERSET';

非常感谢您的帮助。


1
你设置了 NLS_LANG 环境变量吗? - Wernfried Domscheit
1个回答

3
您的libname语句中的选项 "encoding=" 可能会解决此问题。 很容易忽略此关键字 "encoding",因为与libname语句中的其他关键字相比,它既不建议使用也没有突出显示。
以下是从 UTF-8 编码的 SAS 会话访问 WLATIN9 编码的 Oracle 数据库时我的代码示例。
libname mylib oracle
path     = "mydb.bvch.ch"
schema   = MySchema
user     = MyUser
password = "MyPassword" 
access   = readonly
encoding ='utf8'
;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接