ORA-12705: невозможно получить доступ к файлам данных NLS или недопустимой среде
На днях я получил эту досадную ошибку оракула: ORA-12705: Невозможно получить доступ к файлам данных NLS или указана неверная среда. Забавно, я не пытался получить доступ к файлам данных NLS
8 ответов
Есть две возможные причины:
Была предпринята попытка выполнить инструкцию ALTER SESSION с недопустимым параметром или значением NLS.
Переменная среды NLS_LANG содержит недопустимый язык, территорию или набор символов.
Fix:
Удалите переменную среды NLS_LANG
Windows - NLS_LANG должен быть сброшен в реестре Windows (лучше всего переименовать). Найдите подраздел NLS_LANG в реестре в \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE и переименуйте его.
Linux / UNIX - здесь вы просто вводите команду Linux "unset NLS_LANG"
У меня Oracle 10g XE и Windows 7. Я решил это следующим образом:
Перейдите в Панель управления> Региональные и языковые параметры> Формат и установите свой язык.
В моем случае я создавал адаптер базы данных в консоли web-логики oracle, чтобы решить эту проблему, выполнив следующую конфигурацию. Windows -> панель управления -> регион: 1. Измените формат на английский (США), формат даты M / d / yy и 2. Измените мой адрес на Соединенные Штаты. Выполните эту настройку, потому что мой компьютер был настроен на испанский язык, затем перезагрузите компьютер, и я работал без проблем.
Выполните эту процедуру, чтобы установить переменную среды NLS_LANG для баз данных Oracle. Чтобы установить переменную среды NLS_LANG для баз данных Oracle Определите значение NLS_LANG. В базе данных хранилища данных выполните команду SELECT * FROM V$NLS_PARAMETERS
Запишите значение NLS_LANG в формате [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]. Например: American_America.UTF8 Для Windows: перейдите в Панель управления> Система и перейдите на вкладку Дополнительно. Нажмите Переменные среды. В разделе "Системные переменные" нажмите "Создать". В поле Имя переменной введите NLS_LANG. В поле Значение переменной введите значение NLS_LANG, которое было возвращено на шаге 1. Формат значения NLS_LANG должен быть [NLS_LANGUAGE]_[NLS_TERRITORY].[NLS_CHARACTERSET]. Например: American_America.UTF8. Для UNIX установите переменную, как показано ниже: setenv NLS_LANG
Например: setenv NLS_LANG American_America.UTF8. Если ваши данные являются 7-битным или 8-битным ASCII, а сервер Informatica работает в UNIX, то установите NLS_LANG _.WE8ISO8859P1 ВНИМАНИЕ: Убедитесь, что вы правильно установили переменную NLS_LANG, как указано в этой процедуре, иначе ваши данные не будут отображаться правильно.
Перезагрузите компьютер после создания переменной.
После добавления пути в переменную окружения клиента Oracle Instant Oracle SQLPLUSW переходит к клиенту Oracle Instant, и для этого клиента требуется установить NLS LANG AS American_America.UTF8
Вы также можете просто установить конфигурацию NLS в настройках оракула
В случае если вышеуказанные решения не помогли, можете попробовать мое решение. Я только что заменил мою последнюю версию Ojdbc14.jar
к старой версии Ojdbc5.jar
, Это помогло мне решить мою проблему.
Я пытался настроить свой источник данных на WebLogic 12c, который указывал на базу данных 11g, и продолжал получать эту ошибку. Я обнаружил, что WL 12c несовместим с базами данных oracle 11g. Я знаю, что это не связано, но я уверен, что кому-то это пригодится.