Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Oracle > Все что нужно знать об NLS_LANG


Автор: Royan 12.12.2007, 18:53
Я почитал, что нашлось на форуме по этому поводу и посчитал, что тема не раскрыта. А поскольку сам недавно столкнулся с проблемой, то, дабы новые знания не канули в лету предлагаю следующую краткую справку по теме:

Параметр NLS_LANG задает на вашей системе языковую настройку для Oracle'а, если проще, то язык.

На Windows в большинстве случаев эта настройка задается в реестре HKLM/Software/Oracle ключом NLS_LANG. Также можно задать этот параметр в переменных среды или окружения, но так делается редко и это не рекомендуется. Причиной тому служит тот факт, что переменные среды приоритетнее значения получаемого из реестра и будут использоваться для *ВСЕХ* ораклов, имеющихся у вас на сервере (то есть всего, что у вас записано в переменной oracle_home) . В свою очередь на *nix системах задается именно переменная окружения (переменная системы не рекомендуется по тем же причинам)

Все возможные значения для NLS_LANG можно получить так:

Код

SELECT value FROM v$nls_valid_values WHERE parameter='LANGUAGE'


Важно понимать, что основная проблема, которая возникает по причине параметра NLS_LANG связана с тем, что языковая настройка оракла не совпадает с той, что используется на вашей клиентской машине (той с которой вы коннектитесь к ораклу). Физически это может выразится вот в такой ошибке: ORA-12705: Cannot access NLS data files or invalid environment specified. Поэтому интересно получить значение, которое использует Oracle. Это просто:

Код

SELECT USERENV ('language') FROM DUAL


На всякий случай, значением по умолчанию для  NLS_LANG является "American". 

Также по теме рекомендую статью http://www.oracle.com/technology/tech/globalization/htdocs/nls_lang%20faq.htm

Автор: nicotin 25.12.2013, 07:34
для  64 битной оси  HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\-=у всех по-разному=-
для  32 битной оси  HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\-=у всех по-разному=-

ключ NLS_LANG

там прописано значение, которое на клиенте

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)