Oracle ODBC: почему в результате SELECT национальные символы заменены на латинские эквиваленты - PullRequest
3 голосов
/ 10 февраля 2011

У меня есть база данных Oracle 11, к которой я подключаюсь, используя JDBC и ODBC. JDBC работает хорошо, но в ODBC все польские буквы в SELECT результате заменяются на латинские эквиваленты, например ą -> a, Ó -> O и т. Д. Я проверил это с помощью своего приложения и просто Программа на Python, использующая модуль odbc. То же значение из базы данных возвращается как:

ZAMOŚĆ - by JDBC
ZAMOSC - by ODBC

Мое окружение:

Сервер БД: Oracle Database 11g Release 11.2.0.1.0 - 64-разрядная версия

Клиентский компьютер:

  • Windows Server 2008 R2, 64-разрядная
  • Клиенты Oracle в 32-битной и 64-битной версиях: c:\Oracle\Ora1120_32bit и c:\Oracle\Ora1120_64bit
  • Менеджер ODBC сообщает версию драйвера Oracle как: 11.02.00.01

Я думаю, что все локали установлены на польский / польский, но они не видны SET утилита командной строки.

Кто-нибудь знает, какие настройки ODBC или среды отвечают за перевод польских букв в латинские эквиваленты?

1 Ответ

4 голосов
/ 10 февраля 2011

Я подозреваю, что значение клиентского набора символов не одинаково в обоих случаях.Можете ли вы проверить значение параметра NLS_LANG:

  • , поскольку вы работаете в Windows, его следует установить в реестре (вероятно, HKEY_LOCAL_MACHINE -> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ -> ORACLE -> YOUR_HOME -> NLS_LANG)
  • вы обнаружили, что это не решит вашу проблему, однако добавление переменной среды NLS_LANG сработало!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...