【发布时间】:2015-07-11 06:04:30
【问题描述】:
我正在尝试将 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。
对下一步做什么有什么想法吗?
【问题讨论】: