2011-02-10 5 views
3

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

ZAMOŚĆ - by JDBC 
ZAMOSC - by ODBC 

Моя среда:

сервер БД: Oracle Database 11g Release 11.2.0.1.0 - 64bit Производство

Машина клиента:

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

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

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

+0

Какова ценность вашего NLS_LANG? поскольку вы находитесь в окнах, он установлен в реестре (вероятно, HKEY_LOCAL_MACHINE -> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ -> ORACLE -> YOUR_HOME -> NLS_LANG) –

ответ

4

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

  • так как вы на Windows, он должен быть установлен в реестре (возможно HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE -> YOUR_HOME -> NLS_LANG)
  • вы» что это не решает вашу проблему, однако добавление переменной среды NLS_LANG действительно сработало!
+1

Да, 'NLS_LANG' был установлен в' AMERICAN_AMERICA.WE8MSWIN1252' в реестре (в двух местах: один для 32 бит и один для 64 бит). Я заменил параметры реестра на: 'POLISH_POLAND.EE8MSWIN1250', перезапустил машину, но это не помогло. Затем я добавил «NLS_LANG = POLISH_POLAND.EE8MSWIN1250» в машинную среду, и это помогло. Эта машина была настроена с американскими локалями, когда был установлен клиент Oracle. –