| 
			| 
					
						| Антон (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 »  |  | 
 
 Клиент виндовый, сервер виндовый на тойже машине. Клиент ко всему прочему еще и .NETSla, учту на будующие, если вдруг буду ставить
 |  
						| 
								|  |  
								|  |  Записан | 
 
 Странно всё это.... |  |  | 
	| 
			| 
					
						| RXL | 
								|  | « Ответ #5 : 08-06-2007 16:25 »  |  | 
 
 ORA-00604:   error occurred at recursive SQL level stringCause:   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 specifiedCause:   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 среди файлов драйвера.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 ... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. |  |  | 
	|  |