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

Fra*_*nkO 5 oracle sas character-encoding

Unix 服务器上的 SAS 9.4 M6。SAS EG 8.1 客户端。

\n\n

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

\n\n

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

\n\n

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

\n\n

Oracle 数据库NLS_CHARACTERSETAL32UTF8, 是NLS_NCHAR_CHARACTERSETAL16UTF16从以下位置获取

\n\n
select * from nls_database_parameters where parameter like \'%CHARACTERSET\';\n
Run Code Online (Sandbox Code Playgroud)\n\n

任何帮助是极大的赞赏。

\n

Mar*_*her 3

encoding=libname 语句中的选项可能会解决此问题。这很容易被忽略,因为与- 语句encoding中的其他关键字不同,该关键字既没有被建议也没有突出显示libname

以下是从编码的 SAS 会话访问编码WLATIN9的 Oracle 数据库中的数据时我的代码的外观。UTF-8

libname mylib oracle
path     = "mydb.bvch.ch"
schema   = MySchema
user     = MyUser
password = "MyPassword" 
access   = readonly
encoding ='utf8'
;
Run Code Online (Sandbox Code Playgroud)