Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: ORA-00604 при подключении к Oracle  (Прочитано 97751 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« : 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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 08-06-2007 06:10 » 

http://ora-00604.ora-code.com/

Как понимаешь, в доменном имени пишется код ошибки и получаем тематическую страницу.
Попробуй понять, с каким объектом связана ошибка.


NLS - это первым делом, сразу после установки. В том числе и для клиентов.
« Последнее редактирование: 08-06-2007 06:14 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #2 : 08-06-2007 06:28 » 

RXL, не разу е ставил оракл и не настраивал клиентов Улыбаюсь

а в описании ошибки не говорилось откуда она взялась, видимо глюк какой-то в реализации ODP.NET
мне выдавалась ошибка "error occurred at recursive SQL level %s"
видимо вместо %s должно было быть описание, но его не было.
Записан

Странно всё это....
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 08-06-2007 07:57 » 

LogRus, клиент оркала под винду? Нет ничего проще Улыбаюсь
Единственная задача настроить один раз одного клиента.
А потом, тупое копирование веток реестра и папок Оракла.
Offtopic:

Мой бывший шеф ставил оракл-клиента каждый раз с пакета инсталляции, и каждый раз забывал его пропатчить на руссификацию.
Я ему показал способ быстрой инсталяции.
Он и дальше продолжал инсталить.

Встретился с бывшим коллегой, он сказал что История с инсталляцией продолжается.
Бывает необходимость быстро подготовить машинку для отправки клиенту, ну а так как есть "оракловские админы" мой собутыльеседник никаких действий не принимает и ждет самого последнего  момента перед отправкой, а когда админы хватаются за головы, типа "пошел установлю", опс а машинка уже на объекте и уже работает.  (грустно)

В случае возникновения ошибок, лучше всего искать на оракловских сайтах, а только потом в инете
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Антон (LogRus)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #4 : 08-06-2007 10:26 » 

Клиент виндовый, сервер виндовый на тойже машине. Клиент ко всему прочему еще и .NET
Sla, учту на будующие, если вдруг буду ставить
Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #6 : 09-06-2007 05:16 » 

она, только в ней
ORA-00604:   error occurred at recursive SQL level string
только тут вместо string должнобыть более подробное описание что именно развалилось, а негодяйский ODP.NET туда ставит просто %s как будто тут printf должен был еще что-то подставить.

Записан

Странно всё это....
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 09-06-2007 06:00 » 

LogRus, думаю, нужно рыться на оракловом сервере - возможно под эту траблу есть патч. Другой вопрос, что там все на английском и большая часть информации (metalink) доступна лишь имеющим поддержку.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Falsehood
Молодой специалист

ru
Offline 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)
Глобальный модератор

ru
Offline Offline
Пол: Мужской
Внимание! Люблю сахар в кубиках!


WWW
« Ответ #9 : 28-06-2007 12:52 » 

В случае Oracle Express Edition
просто заходим на базу через WebInterface и смотри в разделе о базе раздела о национальных настройках.

в остальных случаях не знаю Улыбаюсь не моя это сфера знаний
Записан

Странно всё это....
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #10 : 28-06-2007 13:03 » 

Falsehood, на каком именно серваке? какой у тебя туда доступ? или ты имеешь ввиду как программо узнать?
Записан

Удачного всем кодинга! -=x[PooH]x=-
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #11 : 28-06-2007 13:18 » 

Offtopic:

Falsehood,  с возвращением Улыбаюсь
Поставлю в угол.
Записан

Falsehood
Молодой специалист

ru
Offline 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
Глобальный модератор

ru
Offline 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
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #14 : 29-06-2007 06:52 » 

ORACLE_HOME = D:\oraclexe\app\oracle\product\10.2.0\server
Записан

Славная трава...
PooH
Глобальный модератор

ru
Offline 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
Молодой специалист

ru
Offline Offline
Пол: Женский
не может быть


« Ответ #16 : 16-07-2007 13:35 » 

СПАСИБО!!! драйвера помогли Улыбаюсь))
Записан

Славная трава...
Andrusha
Новенький

ua
Offline 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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #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
Новенький

ua
Offline 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
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #20 : 11-09-2012 18:36 » 

Andrusha, насколько я знаю, клиент идет в составе сервера. Если ORA-сервер куплен, то и клиент есть.

Но непонятно, почему стоит неправильный клиент на серваке.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Andrusha
Новенький

ua
Offline Offline

« Ответ #21 : 11-09-2012 18:53 » new

Sla, ORA-сервер стоит локальный, бесплатный, жутко порезаный Express Edition 10.
Но программа конектится к другому серверу, на котором стоит лицензионный ORACLE 8 успешно.
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 11-09-2012 19:39 » 

Клиент идет также и отдельно от сервера и доступен на сайте Oracle бесплатно—надо только зарегистрироваться. Старые версии порой убирают из публичного доступа, но можно найти его на торрентах: добрые люди выкладывают образа дистрибутивов  как есть.

Попробуй сперва с NLS_LANG. Так будет проще, чем драйвера ставить. Обычно этот параметр в винде задается ключем в реестре (HKML/Software/Oracle), но можно прописать его как переменную окружения. Проверил: переменная окружения имеет более высокий приоритет, чем запись в реестре.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Andrusha
Новенький

ua
Offline Offline

« Ответ #23 : 11-09-2012 19:51 » 

Andrusha, переменную окружения лучше вписать внутри программы при подключении или в cmd?
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #24 : 12-09-2012 03:51 » 

Как будет удобно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
an0521
Новенький

ru
Offline Offline

« Ответ #25 : 03-02-2019 15:10 » 

Всем Доброго времени суток. Исполнил рекомендации. ошибка не уходит.  может ещё что нибудь посоветуете...
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #26 : 03-02-2019 16:45 » 

Я уже ничего не посоветую, живого Оракла лет уже 6 в глаза не видел.

Думаю, стоит начинать с рассказа о своей проблеме.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
an0521
Новенький

ru
Offline 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
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #28 : 03-02-2019 23:47 » 

SQL Server — это MS, а не Oracle.
Не уверен, что прокатит такой способ передачи настроек подключения. У Оракла, помнится, они должны быть в файле tnsnames среди файлов драйвера.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines