Oracle ODBC:为什么在 SELECT 结果中将国家字符更改为等效的拉丁字符

2024-04-03

我有 Oracle 11 数据库,我使用 JDBC 和 ODBC 连接到该数据库。 JDBC 运行良好,但在 ODBC 中所有波兰字母都在SELECT结果更改为拉丁语等效项,例如ą -> a, Ó -> O等等。我用我的应用程序和简单的Python程序测试了它,该程序使用odbc模块。来自数据库的相同值返回为:

ZAMOŚĆ - by JDBC
ZAMOSC - by ODBC

我的环境:

数据库服务器:Oracle Database 11g 版本 11.2.0.1.0 - 64 位生产版

客户端机器:

  • Windows Server 2008 R2 64 位
  • 32 位和 64 位版本的 Oracle 客户端位于:c:\Oracle\Ora1120_32bit and c:\Oracle\Ora1120_64bit
  • ODBC 管理器报告 Oracle 驱动程序版本为:11.02.00.01

我认为所有区域设置都设置为波兰/波兰语,但它们不可见 经过SET命令行实用程序。

有人知道什么 ODBC 或环境设置负责将波兰字母翻译成拉丁字母吗?


我怀疑客户端字符集的值在这两种情况下并不相同。您可以检查 NLS_LANG 设置的值吗:

  • 由于您使用的是 Windows,因此应该在注册表中进行设置(可能是 HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> YOUR_HOME -> NLS_LANG)
  • 您发现这并不能解决您的问题,但是添加环境变量 NLS_LANG 确实有效!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Oracle ODBC:为什么在 SELECT 结果中将国家字符更改为等效的拉丁字符 的相关文章

随机推荐