0

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

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

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

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

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

对下一步做什么有任何想法吗?

4

1 回答 1

0

如果NLS_CHARACTERSET设置为,US7ASCII那么您将永远不会从中获得任何特殊字符。你应该得到任何字符,只要NLS_NCHAR_CHARACTERSET=AL16UTF16你的列的数据类型是NVARCHAR2or NCHAR(not VARCHAR2)

将您的本地设置NLS_LANGENGLISH_UNITED KINGDOM.AL32UTF8然后它应该可以工作。

于 2015-05-01T13:26:53.220 回答