3

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

ZAMOŚĆ - by JDBC
ZAMOSC - by ODBC

我的环境:

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

客户端机器:

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

我认为所有语言环境都设置为波兰/波兰语,但SET命令行实用程序看不到它们。

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

4

1 回答 1

4

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

  • 由于您使用的是 Windows,因此应在注册表中进行设置(可能是 HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> YOUR_HOME -> NLS_LANG)
  • 您发现这并不能解决您的问题,但是添加环境变量 NLS_LANG 确实有效!
于 2011-02-10T12:47:37.750 回答