如何在Windows 7 for Oracle 11g ODBC客户端

时间:2015-05-01 11:50:48

标签: windows oracle nls-lang

我试图将数据从Oracle数据库检索到MS Access或Excel到Windows 7 PC。数据包括诸如度数和直径符号的字符。这些在PC上无法正确显示。我可以看到数据在我的查询中使用dump函数正确存储,并且它是客户端字符集的转换,不会将它们带入。

通过查看此查询,并使用SELECT * FROM NLS_database_PARAMETERS查询数据库参数,我可以看到NLS_CHARACTERSET = US7ASCII。我认为这是问题的原因,因为直径符号等不包含在此字符集中。

但是,我已经检查了注册表,看看NLS_LANG的设置是什么,它是ENGLISH_UNITED KINGDOM.WE8MSWIN1252。我知道我正在查找正确的注册表项,因为当我更改语言/区域时(例如GERMAN_GERMANY),它确实会更改我的查询。

我还检查了一个覆盖此设置但无法找到的环境变量。我尝试使用与上面相同的设置创建NLS_LANG环境变量,但这没有任何区别。

我的Windows代码页设置为1252.数据库NLS_NCHAR_CHARACTERSET设置为AL16UTF16

关于下一步该怎么做的任何想法?

1 个答案:

答案 0 :(得分:0)

如果NLS_CHARACTERSET设置为US7ASCII,那么您将永远不会从中获取任何特殊字符。使用NLS_NCHAR_CHARACTERSET=AL16UTF16,如果您的列的数据类型为NVARCHAR2NCHAR(不是VARCHAR2

,您应该获得任何字符

将您的本地NLS_LANG设置为ENGLISH_UNITED KINGDOM.AL32UTF8然后它应该有效。