Антон (LogRus)
|
|
« : 07-06-2007 19:11 » |
|
Добрый день! Довольно много времени убил на борьбу с этой ошибкой при подключении к серверу Oracle Express Edition из VS.NET 2005 В сети полезной информации почти не нашел, то что нашел было или не по руски и невнятно или по руски и невнятно База UNICODEная. Решение такое лезем в реестр HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_ODACHome1\NLS_LANG устанавливаем в значение RUSSIAN_RUSSIA.AL32UTF8, где: RUSSIAN это NLS_LANGUAGE на серваке RUSSIA это NLS_TERRITORY на серваке AL32UTF8 это NLS_CHARACTERSET на серваке в общем случае NLS_LANG устанавливаем в NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET может еще кому поможет.
|
|
|
Записан
|
Странно всё это....
|
|
|
RXL
|
|
« Ответ #1 : 08-06-2007 06:10 » |
|
http://ora-00604.ora-code.com/Как понимаешь, в доменном имени пишется код ошибки и получаем тематическую страницу. Попробуй понять, с каким объектом связана ошибка. NLS - это первым делом, сразу после установки. В том числе и для клиентов.
|
|
« Последнее редактирование: 08-06-2007 06:14 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Антон (LogRus)
|
|
« Ответ #2 : 08-06-2007 06:28 » |
|
RXL, не разу е ставил оракл и не настраивал клиентов а в описании ошибки не говорилось откуда она взялась, видимо глюк какой-то в реализации ODP.NET мне выдавалась ошибка "error occurred at recursive SQL level %s" видимо вместо %s должно было быть описание, но его не было.
|
|
|
Записан
|
Странно всё это....
|
|
|
Sla
|
|
« Ответ #3 : 08-06-2007 07:57 » |
|
LogRus, клиент оркала под винду? Нет ничего проще Единственная задача настроить один раз одного клиента. А потом, тупое копирование веток реестра и папок Оракла. Offtopic: Мой бывший шеф ставил оракл-клиента каждый раз с пакета инсталляции, и каждый раз забывал его пропатчить на руссификацию. Я ему показал способ быстрой инсталяции. Он и дальше продолжал инсталить.
Встретился с бывшим коллегой, он сказал что История с инсталляцией продолжается. Бывает необходимость быстро подготовить машинку для отправки клиенту, ну а так как есть "оракловские админы" мой собутыльеседник никаких действий не принимает и ждет самого последнего момента перед отправкой, а когда админы хватаются за головы, типа "пошел установлю", опс а машинка уже на объекте и уже работает. (грустно)
В случае возникновения ошибок, лучше всего искать на оракловских сайтах, а только потом в инете
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Антон (LogRus)
|
|
« Ответ #4 : 08-06-2007 10:26 » |
|
Клиент виндовый, сервер виндовый на тойже машине. Клиент ко всему прочему еще и .NET Sla, учту на будующие, если вдруг буду ставить
|
|
|
Записан
|
Странно всё это....
|
|
|
RXL
|
|
« Ответ #5 : 08-06-2007 16:25 » |
|
ORA-00604: error occurred at recursive SQL level string Cause: An error occurred while processing a recursive SQL statement (a statement applying to internal dictionary tables). Action: If the situation described in the next error on the stack can be corrected, do so; otherwise contact Oracle Support.
Вот эта самая следующая ошибка есть?
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Антон (LogRus)
|
|
« Ответ #6 : 09-06-2007 05:16 » |
|
она, только в ней ORA-00604: error occurred at recursive SQL level string только тут вместо string должнобыть более подробное описание что именно развалилось, а негодяйский ODP.NET туда ставит просто %s как будто тут printf должен был еще что-то подставить.
|
|
|
Записан
|
Странно всё это....
|
|
|
RXL
|
|
« Ответ #7 : 09-06-2007 06:00 » |
|
LogRus, думаю, нужно рыться на оракловом сервере - возможно под эту траблу есть патч. Другой вопрос, что там все на английском и большая часть информации (metalink) доступна лишь имеющим поддержку.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #8 : 28-06-2007 10:43 » |
|
привет. Решение такое лезем в реестр HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_ODACHome1\NLS_LANG устанавливаем в значение RUSSIAN_RUSSIA.AL32UTF8, где: RUSSIAN это NLS_LANGUAGE на серваке RUSSIA это NLS_TERRITORY на серваке AL32UTF8 это NLS_CHARACTERSET на серваке
в общем случае NLS_LANG устанавливаем в NLS_LANGUAGE_NLS_TERRITORY.NLS_CHARACTERSET
может еще кому поможет.
поможет, если объясните, как узнать, какие NLS_LANGUAGE на серваке, NLS_TERRITORY на серваке и NLS_CHARACTERSET на серваке. пожалуйста
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #9 : 28-06-2007 12:52 » |
|
В случае Oracle Express Edition просто заходим на базу через WebInterface и смотри в разделе о базе раздела о национальных настройках. в остальных случаях не знаю не моя это сфера знаний
|
|
|
Записан
|
Странно всё это....
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #10 : 28-06-2007 13:03 » |
|
Falsehood, на каком именно серваке? какой у тебя туда доступ? или ты имеешь ввиду как программо узнать?
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #11 : 28-06-2007 13:18 » |
|
Offtopic: Falsehood, с возвращением Поставлю в угол.
|
|
|
Записан
|
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #12 : 28-06-2007 14:48 » |
|
Лёш, спасибо при подключении к БД Oracle 10g Express Edition (из NetBeans 5.5.1, но это, наверное, не очень важно) генерится ошибка: ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified сервер на той же машине. его настройки: NLS_CHARACTERSET AL32UTF8 NLS_LANGUAGE RUSSIAN NLS_TERRITORY RUSSIA в реестре ключ NLS_LANG поменяла в соответствии с приведенной LogRus формулой на RUSSIAN_RUSSIA.AL32UTF8, но ошибка не ушла. помогите
|
|
|
Записан
|
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #13 : 29-06-2007 06:10 » |
|
http://ora-12705.ora-code.com/ORA-12705: Cannot access NLS data files or invalid environment specified Cause: Either an attempt was made to issue an ALTER SESSION command with an invalid NLS parameter or value; or the environment variable(s) NLS_LANG, ORA_NLSxx, or ORACLE_HOME was incorrectly specified, therefore the NLS data files cannot be located. Action: Check the syntax of the ALTER SESSION command and the NLS parameter, correct the syntax and retry the statement, or specify the correct directory path/values in the environment variables. что у тебя в переменных окружения?
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #14 : 29-06-2007 06:52 » |
|
ORACLE_HOME = D:\oraclexe\app\oracle\product\10.2.0\server
|
|
|
Записан
|
|
|
|
PooH
Глобальный модератор
Offline
Пол:
... и можно без хлеба!
|
|
« Ответ #15 : 29-06-2007 09:01 » |
|
вот, что нашел: http://www.ors.kz/?mod=html&id=277т.е. у нас фактически 2 пути обхода этой ошибки (WORKAROUND) Первый путь подразумевает 5 действий: Сохранить локализацию по умолчанию; Установить локализацию по умолчанию в en_US; Соединиться; Восстановить локализацию по умолчанию; Послать ALTER SESSION для установки сессии NLS установок. Второй путь, использовать драйвер 10.1.0.3. Данный драйвер можно найти в установленной СУБД Oracle Database 10g 10.1.0.3 в каталоге {oracle_home}\jdbc\lib Второй путь проще. Методом проб выяснилось, что для исправления ошибки необходимо заменить библиотеки ojdbc14dms.jar и ojdbc14.jar драйвера Oracle JDBC, который поставляется вместе с JDeveloper 10g, на библиотеки драйвера 10.1.0.3. Заменяем библиотеки, которые находятся по пути {jdeveloper_home}\jdbc\lib. После этого все отлично работает. Библиотеки можно скачать тут ( http://www.ors.kz/mod/stat.php?dir=20142210020052006110652/lib10103.rar&id=34&id_type=170).
|
|
|
Записан
|
Удачного всем кодинга! -=x[PooH]x=-
|
|
|
Falsehood
Молодой специалист
Offline
Пол:
не может быть
|
|
« Ответ #16 : 16-07-2007 13:35 » |
|
СПАСИБО!!! драйвера помогли ))
|
|
|
Записан
|
|
|
|
Andrusha
Новенький
Offline
|
|
« Ответ #17 : 10-09-2012 20:43 » |
|
Здраствуйте ребята. Прошу помощи в решении проблемы похожей на описаную Falsehood. при подключении к БД Oracle 10g Express Edition (из NetBeans 5.5.1, но это, наверное, не очень важно) генерится ошибка: ORA-00604: error occurred at recursive SQL level 1 ORA-12705: Cannot access NLS data files or invalid environment specified сервер на той же машине. его настройки: NLS_CHARACTERSET AL32UTF8 NLS_LANGUAGE RUSSIAN NLS_TERRITORY RUSSIA в реестре ключ NLS_LANG поменяла в соответствии с приведенной LogRus формулой на RUSSIAN_RUSSIA.AL32UTF8, но ошибка не ушла. помогите Сервер Oracle Express Edition 10, локальный, работает на CL8MSWIN1251 кодировке. Из-за системы безопасности копаться в реестре, если и удасться, то уголовно наказуемо. Насколько я понял ей помогли другие драйвера, то у меня такое не прокатит. Ибо работаю на режимном предприятии, где что-бы закнуть "из вне" безобидную фотографию на рабочий стол, надо пол предприятия оббегать и собрать пачку А4 справок. Мб как-то можно другими способами решить роблему? Буду рад любой светлой мысли.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #18 : 11-09-2012 04:12 » |
|
Andrusha, если ты прочел последние два поста, то должен понять, что ей помогло обновление клиентских драйверов БД до 10.1.0.3. На текущий момент это жутко старый драйвер. Обратись на работ в службу, заведующую обновлением ПО и затребуй обновление ораклового клиента до 10.2.0.1. Т.е. не надо делать это самостоятельно—запроси соответствующий отдел.
Я для NSL_LANG на виндовых клиентах ставлю NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 и настраиваю форматы дат в программе через ALTER SESSION. Работает стабильно.
|
|
« Последнее редактирование: 11-09-2012 04:24 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Andrusha
Новенький
Offline
|
|
« Ответ #19 : 11-09-2012 18:30 » |
|
Andrusha, если ты прочел последние два поста, то должен понять, что ей помогло обновление клиентских драйверов БД до 10.1.0.3. На текущий момент это жутко старый драйвер. Обратись на работ в службу, заведующую обновлением ПО и затребуй обновление ораклового клиента до 10.2.0.1. Т.е. не надо делать это самостоятельно—запроси соответствующий отдел.
Я для NSL_LANG на виндовых клиентах ставлю NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 и настраиваю форматы дат в программе через ALTER SESSION. Работает стабильно.
Спасибо большее за оперативный подробный ответ. Кажется я понял о чем Вы. А оракловский клиент 10+ существует бесплатная версия? И подойдет ли она для для данных целей?
|
|
|
Записан
|
|
|
|
Sla
|
|
« Ответ #20 : 11-09-2012 18:36 » |
|
Andrusha, насколько я знаю, клиент идет в составе сервера. Если ORA-сервер куплен, то и клиент есть.
Но непонятно, почему стоит неправильный клиент на серваке.
|
|
|
Записан
|
Мы все учились понемногу... Чему-нибудь и как-нибудь.
|
|
|
Andrusha
Новенький
Offline
|
|
« Ответ #21 : 11-09-2012 18:53 » |
|
Sla, ORA-сервер стоит локальный, бесплатный, жутко порезаный Express Edition 10. Но программа конектится к другому серверу, на котором стоит лицензионный ORACLE 8 успешно.
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #22 : 11-09-2012 19:39 » |
|
Клиент идет также и отдельно от сервера и доступен на сайте Oracle бесплатно—надо только зарегистрироваться. Старые версии порой убирают из публичного доступа, но можно найти его на торрентах: добрые люди выкладывают образа дистрибутивов как есть.
Попробуй сперва с NLS_LANG. Так будет проще, чем драйвера ставить. Обычно этот параметр в винде задается ключем в реестре (HKML/Software/Oracle), но можно прописать его как переменную окружения. Проверил: переменная окружения имеет более высокий приоритет, чем запись в реестре.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Andrusha
Новенький
Offline
|
|
« Ответ #23 : 11-09-2012 19:51 » |
|
Andrusha, переменную окружения лучше вписать внутри программы при подключении или в cmd?
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #24 : 12-09-2012 03:51 » |
|
Как будет удобно.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
an0521
Новенький
Offline
|
|
« Ответ #25 : 03-02-2019 15:10 » |
|
Всем Доброго времени суток. Исполнил рекомендации. ошибка не уходит. может ещё что нибудь посоветуете...
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #26 : 03-02-2019 16:45 » |
|
Я уже ничего не посоветую, живого Оракла лет уже 6 в глаза не видел.
Думаю, стоит начинать с рассказа о своей проблеме.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
an0521
Новенький
Offline
|
|
« Ответ #27 : 03-02-2019 18:44 » |
|
Как приконнектится к серверу ORACLE из под 1C7.7 Дано : сервер moon (s1111). сервер с реальными данными. MOON = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 123.4.56.78)(PORT = 11111)) ) (CONNECT_DATA = (SID = PRD)) ) Подключение ко всем серверам осуществлять пользователем XXXX с паролем xxxx. После подключения необходимо инициализировать окружение вызовом функции: xxeq_interface.login(user_name, password) RETURN numeric где user_name, password - имя пользователя и пароль входа в OEBS. Пробую такую конструкцию - не выходит : Connection = CreateObject("ADODB.Connection"); ConnectionString = "driver={SQL Server}; server= |(DESCRIPTION = |(MOON = | (ADDRESS_LIST = | (ADDRESS = (PROTOCOL = TCP)(HOST = 123.4.56.78)(PORT = 1111)) | ) | (CONNECT_DATA = (SID = PRD)) |)); uid=XXXX; Pwd=xxxx; Database =moon"; Connection.Open(ConnectionString); P.S. естественно имена/адреса изменены
|
|
|
Записан
|
|
|
|
RXL
|
|
« Ответ #28 : 03-02-2019 23:47 » |
|
SQL Server — это MS, а не Oracle. Не уверен, что прокатит такой способ передачи настроек подключения. У Оракла, помнится, они должны быть в файле tnsnames среди файлов драйвера.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
|