Мы находимся в процессе перехода от драйвера Oracle .NET Microsoft к драйверу ODP.NET.
Одна из проблем, с которой мы столкнулись, это ошибка:
ORA-12705: Невозможно получить доступ к файлам данных NLS или указана неверная среда
Мы смогли остановить ошибку, изменив реестр и изменив настройки ( см. Этот вопрос )
В нашем случае мы изменили
HKEY_LOCAL_MACHINE - SOFTWARE - ORACLE - NLS_LANG
который был установлен на NA
будет таким же, как
HKEY_LOCAL_MACHINE - SOFTWARE - ORACLE - HOME0 - NLS_LANG
, который был установлен правильно
У меня вопрос, почему в реестре должны быть другие настройки NLS_LANG, и может ли быть какой-либо удар по эффектам изменения этого значения?
Обновление:
Я только что нашел в Oracle NLS FAQ следующее
Для Oracle версии 7:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
Для баз данных Oracle версий 8, 8i и
9i:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMEx\
где "х" - уникальный номер
идентификация дома Оракула.
HOME0 - первая установка
Для базы данных Oracle 10g:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_<oracle_home_name>
Там у вас есть запись с именем
NLS_LANG
ОК, поэтому существуют разные настройки реестра для разных версий ...
Примечание:
Некоторые люди смущены, обнаружив
NLS_LANG установлен в «NA» в
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
когда версия 7 не была установлена. это
используется для обратной совместимости,
и может быть проигнорировано.
У меня Oracle 9i, так что теперь я еще больше запутался - почему dll ODP.NET смотрит на параметр реестра Oracle 7?