Меню

Ora 00604 ошибка на рекурсивном sql уровне 1 ora 12705

I am having this error in my j2ee web application.

java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified

 oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
 oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
 oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:283)
 oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:278)
 oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:785)
 oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:376)
 oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)
 oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
 oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
 oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:839)
 java.sql.DriverManager.getConnection(Unknown Source)
 java.sql.DriverManager.getConnection(Unknown Source)
 org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
 org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
 org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167)
 org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142)
 org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
 org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)


 org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85)
 org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1353)

This project works in my colleagues’ PCs… I mean this project works for them but when I asked for their project folder and imported it on my eclipse, when i run it i meet this error. The jar files are already packaged with the project folder.

I also created a simple j2ee project using hibernate but I had the same error.
I tried to ping the DB server and browse it using PL/SQL developer and I don’t have any problem with it

OMG Ponies's user avatar

OMG Ponies

321k79 gold badges516 silver badges499 bronze badges

asked Oct 27, 2009 at 7:59

cedric's user avatar

Try following:

  1. Check that NLS_LANG setting is correct. On windows it is in registry under HKEY_LOCAL_MACHINESOFTWAREORACLE.
  2. Check that Oracle client software is correctly installed.
  3. Check if there are multiple Oracle homes on that computer. In that case, find active one and check if it works.
  4. Test with SQL*Plus if there is one installed. Sql Developer works because it has its own client installation.

Edit:
Regarding drivers, check this site: Oracle Instant Client. There you will find documentation on minimum drivers installation needed for JDBC access to Oracle. I don’t know much about that because I use .Net.

Edit 2:
See this question: NLS_LANG setting for JDBC thin driver. There is same error as you have and problem was that default locale for NLS LANG was not defined. Quote:

The NLS_LANG settings are derived from the java.util.Locale . Therefore, you will need to make a call similar to this before connecting:

  Locale.setDefault(Locale.<your locale here>);

Community's user avatar

answered Oct 27, 2009 at 11:12

zendar's user avatar

zendarzendar

13.2k14 gold badges57 silver badges75 bronze badges

1

I figured out that that you could pass that two params to your Java app to resolve the issue:

-Duser.country=en -Duser.language=en

You could configure the values at environment variable level as well (depends from your OS).

answered Apr 8, 2010 at 12:56

FoxyBOA's user avatar

FoxyBOAFoxyBOA

5,7786 gold badges47 silver badges81 bronze badges

I had the same problem. The solution was to add the country and the language to sqldeveloper.conf

Please open the file:

sqldevelopersqldeveloperbinsqldeveloper.conf

And add the following:

AddVMOption -Duser.language=en
AddVMOption -Duser.region=us

The above does the trick.

Reference: http://forum.oradba.net/showthread.php?t=423&langid=1

eeerahul's user avatar

eeerahul

1,6294 gold badges30 silver badges38 bronze badges

answered Dec 12, 2011 at 12:13

athoik's user avatar

athoikathoik

3634 silver badges8 bronze badges

3

For Windows env, you need to change the System Locale and System Format to English/US.

How to change system locale?

akjoshi's user avatar

akjoshi

15.1k13 gold badges104 silver badges120 bronze badges

answered Nov 28, 2012 at 6:44

Khai Shen's user avatar

Khai ShenKhai Shen

511 silver badge2 bronze badges

I found solution, I just change the regional and language in my OS (windows 7), make sure it matches with the oracle regional and language.

answered Aug 3, 2010 at 7:43

kuli_koding's user avatar

Oracle JDBC driver implicitly executes following statement after opening new connection:

ALTER SESSION SET NLS_LANGUAGE='language' NLS_TERRITORY='territory'

In our case we had problems with Oracle XE 11g and default language/territory mappings embedded into JDBC driver: ‘ru’ locale was mapped to ‘CIS’ territory which is supported only by Oracle EE, but Oracle XE had ‘RUSSIA’ territory only.
Here is the way we fixed this:

-Doracle.jdbc.territoryMap="ru=RUSSIA;RU=RUSSIA"

There is option for NLS_LANGUAGE(we had no problems with defaults):

-Doracle.jdbc.languageMap="ru=RUSSIAN;RU=RUSSIAN"

Fixed: constant ru=RUSSIAN taken from class oracle.sql.converter.CharacterSetMetaData of java jdbc driver.

darkslave's user avatar

answered Feb 27, 2016 at 18:47

Each's user avatar

EachEach

4383 silver badges7 bronze badges

1

If you are compiling with intelljIDE I advise you add following options in VMoptions found in configurations model

AddVMOption -Duser.region=us. 

answered Oct 25, 2019 at 15:47

Dennis's user avatar

DennisDennis

3413 silver badges7 bronze badges

First execute query:

select userenv('LANGUAGE') from dual;`

This will give oracle regional and language. Change the regional and language in OS, both should match.

ochs.tobi's user avatar

ochs.tobi

3,0267 gold badges30 silver badges50 bronze badges

answered Mar 27, 2018 at 7:06

user9556622's user avatar

check the JAVA_HOME system variable and verify that it is the same version you are using in your projects and programs

answered Feb 27, 2019 at 20:19

Noemi Fiallos's user avatar

1

Changing the region settings and language of my machine helped to get away with this.
I changed region to United States and English (United States) as language.

answered Nov 25, 2019 at 7:06

Sahibzada Abdul Hadi's user avatar

If you are running a spring application just add Locale.setDefault(Locale.ENGLISH); at main class.

public static void main(String[] args) throws Exception
{
    Locale.setDefault(Locale.ENGLISH);
    SpringApplication.run(ApplicationName.class, args);



}

answered Apr 30, 2021 at 10:24

Martin Itotia Kibanyu's user avatar

  • Новые
  • Лучшие
  • Все

Исправляем ошибку ORA-00604: error occured at recursive SQL level 1ORA-12705 в Oracle SQL Developer

Осваиваем Oracle и PL/SQL

Ошибка при установке соединения с сервером из Oracle SQL Developer:

ORA-00604: error occured at recursive SQL level 1ORA-12705: Cannot access NLS data files or invalid enviroment specified

Для исправления делаем следующие действия:

Открываем <папку_со_средой>idebinide.conf
Дописываем туда две строчки:

AddVMOption -Duser.language=en
AddVMOption -Duser.region=us

И всё!


Oracle
ошибка подключения

Roman

03 May 2014, 01:21

22290
1
0
0

Оставить первый комментарий:

  • Популярное
Работа со строками в Oracle (PL/SQL)

Основные способы обработки строковых значений в Oracle. В этой публикации я приведу основные функции (читать далее…)

628  

Работа с XML в Oracle PL/SQL (Часть 1)

В этой публикации я приведу основные способы работы с XML в Oracle, которые сам использую. Здесь буд (читать далее…)

394  

Функция Oracle TO_DATE (PL/SQL)

Функция TO_DATE — преобразует строку в переменную времени DATE. Синтаксис: TO_DATE(исходная_строка, (читать далее…)

321  

Объединение выборок UNION, INTERSECT, MINUS в Oracle (PL/SQL)

В Oracle присутствует возможность объединять выборки. Для объединения используются операторы: UNION (читать далее…)

315  

XML в Oracle PL/SQL (Часть 2 — Выборки в виде XML)

В предыдущей публикации были рассмотрены некоторые приёмы манипуляции с XML в Oracle, теперь рассмот (читать далее…)

261  

Содержание

  1. Ora 00604 error occurred at recursive sql level 1 ora 12705
  2. Оставить первый комментарий:
  3. ORA-00604 Error Occurs at Recursive SQL level While Creating Package/Procedure using SQL Developer on Upgraded 12c Database (Doc ID 2476156.1)
  4. Applies to:
  5. Symptoms
  6. Changes
  7. Cause
  8. To view full details, sign in with your My Oracle Support account.
  9. Don’t have a My Oracle Support account? Click to get started!
  10. ORA-00604: error occurred at recursive SQL level 1 ORA-12705: invalid or un
  11. Failure conection ORA-00604 and ORA-12705
  12. Comments
  13. ORA-00604: Error Occurred At Recursive SQL Level 1.When DB User Trying to Change Password (Doc ID 2232779.1)
  14. Applies to:
  15. Symptoms
  16. Changes
  17. Cause
  18. To view full details, sign in with your My Oracle Support account.
  19. Don’t have a My Oracle Support account? Click to get started!

Ora 00604 error occurred at recursive sql level 1 ora 12705

Ошибка при установке соединения с сервером из Oracle SQL Developer:

ORA-00604: error occured at recursive SQL level 1ORA-12705: Cannot access NLS data files or invalid enviroment specified

Для исправления делаем следующие действия:

Открываем idebinide.conf
Дописываем туда две строчки:

AddVMOption -Duser.language=en
AddVMOption -Duser.region=us

И всё!

Оставить первый комментарий:

Работа со строками в Oracle (PL/SQL)

Основные способы обработки строковых значений в Oracle. В этой публикации я приведу основные функции (читать далее. )

Работа с XML в Oracle PL/SQL (Часть 1)

В этой публикации я приведу основные способы работы с XML в Oracle, которые сам использую. Здесь буд (читать далее. )

Функция Oracle TO_DATE (PL/SQL)

Функция TO_DATE — преобразует строку в переменную времени DATE. Синтаксис: TO_DATE(исходная_строка, (читать далее. )

Объединение выборок UNION, INTERSECT, MINUS в Oracle (PL/SQL)

В Oracle присутствует возможность объединять выборки. Для объединения используются операторы: UNION (читать далее. )

XML в Oracle PL/SQL (Часть 2 — Выборки в виде XML)

В предыдущей публикации были рассмотрены некоторые приёмы манипуляции с XML в Oracle, теперь рассмот (читать далее. )

Источник

ORA-00604 Error Occurs at Recursive SQL level While Creating Package/Procedure using SQL Developer on Upgraded 12c Database (Doc ID 2476156.1)

Last updated on JULY 20, 2021

Applies to:

Symptoms

After patching existing 12c database (for example, patch to 12.2.0.1.181016), the following exception is seen while connecting and creating a Package/Procedure from SQL Developer:

CREATE OR REPLACE
PACKAGE PACKAGE1 AS
END PACKAGE1;
/

Error starting at line: 1 of the command:
CREATE OR REPLACE
PACKAGE PACKAGE1 AS
END PACKAGE1;
Error report —
ORA-00604: a recursive SQL level 1 error has occurred
ORA-00904: «DECL_OBJ #»: invalid identifier
00604. 00000 — «error occurred at recursive SQL level% s»
* 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.

However, if run this same command in SQL*Plus directly on the server, then it works correctly.

Changes

Database 12c is patched or upgraded

Cause

To view full details, sign in with your My Oracle Support account.

Don’t have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.

Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit oracle.com. пїЅ Oracle | Contact and Chat | Support | Communities | Connect with us | | | | Legal Notices | Terms of Use

Источник

ORA-00604: error occurred at recursive SQL level 1 ORA-12705: invalid or un

Hello, I’m so worried because I can’t resolve the following problem with my oracle clients on my desktop.

Initial state:
SO: Windows XP SP1
Oracle clients: Oracle 8i
Issue: I can get connection and access to the DB successfully

Middle state:
SO: Windows XP SP1
Oracle clients: The same Oracle 8i and a new Oracle 9 client.
Issue: We need to swap between each DB 8 and 9 using the HOME SELECTOR to get connections and access. I understand that the Oracle 9 Client have back-compatibility with 8i DBs. If I tray to get connection to the DB 8i using the Oracle 9 we get the following errors.
Errors: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: invalid or unknown NLS parameter value specified

I decided to uninstall all the products (Oracle 8 and 9) using the Oracle Universal Installer. We didn’t erase folders nor registers, we just used Oracle Universal Installer. Then we installed Oracle 10g

Final Sate:
SO: Windows XP SP1
Oracle clients: only Oracle 10g
Issue: I can get connection and access to the Oracle 9 DB. But trying with the Oracle 8i DB I got the same problem described above.
Errors: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: invalid or unknown NLS parameter value specified

Please can somebody tell me how can I resolve this problem.
Thanks.
Luis Carlos

Источник

Failure conection ORA-00604 and ORA-12705

Hi
I can’t connect any database from raptor, by I can connect from sqlplus, em, toad, sqldeveloper, etc

The error is:
Status: Failure ORA-00604: error occurred at recursive SQL level 1 ORA—12705: invalid or unknown NLS parameter value specified

Which version are you running?
Win or Linux?

May you post value of NLS* parameter set in your environment?

SO: Windows Xp SP 2
Raptor Version 1..0.0.07.15
Build MAIN-07.15

I have installed one oracle home with Oracle 9.2.0.6

I can set all parameters:
Connection Name
Username
Password
Hostname
Port
SID
and then conection failure ORA-00604 and ORA-12705

but I change the password from wrong password and the error is
Failure ORA-01017: invalid username/password; logon denied

NLS_LANG=LATIN AMERICAN SPANISH.WE8MSWIN1252

yes
now connect

exelente
muchisimas gracias

apart from changing locale settings, you may want to check your NLS_LANG.

I can connect with NLS_LANG=ITALIAN_ITALY.WE8ISO8859P1

NLS_LANG has the following syntax:
NLS_LANG=language_territory.character set
(Note the underscore between language and teritorry, and dot between teritory and character set)

I am not sure which territory fits best. the docs does not report Argentina among supportes ones.

You may take a look at the Globalization Guide to choose the best match.

Источник

ORA-00604: Error Occurred At Recursive SQL Level 1.When DB User Trying to Change Password (Doc ID 2232779.1)

Last updated on APRIL 03, 2021

Applies to:

Symptoms

While changing password for users with expired password ,below error is returned for all users in the database. No trigger is created to prevent password from getting changed.

ERROR:
ORA-28001: the password has expired

Changing password for test
New password:
Retype new password:
ERROR:
ORA-00604: error occurred at recursive SQL level 1
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at line 30

Changes

No.Changes were made in Database

Cause

To view full details, sign in with your My Oracle Support account.

Don’t have a My Oracle Support account? Click to get started!

In this Document

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.

Oracle offers a comprehensive and fully integrated stack of cloud applications and platform services. For more information about Oracle (NYSE:ORCL), visit oracle.com. пїЅ Oracle | Contact and Chat | Support | Communities | Connect with us | | | | Legal Notices | Terms of Use

Источник

Even if you use the same credentials, your colleague may have a different environment with PL/Scope disabled.

SQL> create procedure p1 as
  2  begin
  3    null;
  4  end;
  5  /

Procedure created.

SQL> select count(*) from PLSCOPE_IDENTIFIER$;

  COUNT(*)
----------
      2057

Compile the procedure without PL/Scope:

SQL> show parameter plscope

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
plscope_settings                     string      IDENTIFIERS:NONE
SQL> alter procedure p1 compile;

Procedure altered.

SQL> select count(*) from PLSCOPE_IDENTIFIER$;

  COUNT(*)
----------
      2057

No change. Now compile with PL/Scope enabled:

SQL> alter session set plscope_settings='IDENTIFIERS:ALL';

Session altered.

SQL> alter procedure p1 compile;

Procedure altered.

SQL> select count(*) from PLSCOPE_IDENTIFIER$;

  COUNT(*)
----------
      2058

This created some extra metadata in the above table which happens to be in the SYSAUX tablespace. Now disable and compile again:

SQL> alter session set plscope_settings='IDENTIFIERS:NONE';

Session altered.

SQL> alter procedure p1 compile;

Procedure altered.

SQL> select count(*) from PLSCOPE_IDENTIFIER$;

  COUNT(*)
----------
      2057

Back to the original state.

This is the problem:

ORA-01654: unable to extend index SYS.I_PLSCOPE_SIG_IDENTIFIER$ by 8 in tablespace SYSAUX, which simply means the SYSAUX tablespace is full.

Being unable to compile the PL/SQL code with PL/Scope enabled is just a symptom of the above error. Ask the DBA to make/increase space in the SYSAUX tablespace. PL/Scope is a configurable option in SQL Developer (Tools — Preferences — Database — PL/SQL Compiler — PLScope identifiers).

Even if you use the same credentials, your colleague may have a different environment with PL/Scope disabled.

SQL> create procedure p1 as
  2  begin
  3    null;
  4  end;
  5  /

Procedure created.

SQL> select count(*) from PLSCOPE_IDENTIFIER$;

  COUNT(*)
----------
      2057

Compile the procedure without PL/Scope:

SQL> show parameter plscope

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
plscope_settings                     string      IDENTIFIERS:NONE
SQL> alter procedure p1 compile;

Procedure altered.

SQL> select count(*) from PLSCOPE_IDENTIFIER$;

  COUNT(*)
----------
      2057

No change. Now compile with PL/Scope enabled:

SQL> alter session set plscope_settings='IDENTIFIERS:ALL';

Session altered.

SQL> alter procedure p1 compile;

Procedure altered.

SQL> select count(*) from PLSCOPE_IDENTIFIER$;

  COUNT(*)
----------
      2058

This created some extra metadata in the above table which happens to be in the SYSAUX tablespace. Now disable and compile again:

SQL> alter session set plscope_settings='IDENTIFIERS:NONE';

Session altered.

SQL> alter procedure p1 compile;

Procedure altered.

SQL> select count(*) from PLSCOPE_IDENTIFIER$;

  COUNT(*)
----------
      2057

Back to the original state.

This is the problem:

ORA-01654: unable to extend index SYS.I_PLSCOPE_SIG_IDENTIFIER$ by 8 in tablespace SYSAUX, which simply means the SYSAUX tablespace is full.

Being unable to compile the PL/SQL code with PL/Scope enabled is just a symptom of the above error. Ask the DBA to make/increase space in the SYSAUX tablespace. PL/Scope is a configurable option in SQL Developer (Tools — Preferences — Database — PL/SQL Compiler — PLScope identifiers).

Антон (LogRus)

Глобальный модератор

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

Внимание! Люблю сахар в кубиках!

WWW


Добрый день!

Довольно много времени убил на борьбу с этой ошибкой при подключении к серверу Oracle Express Edition из VS.NET 2005

В сети полезной информации почти не нашел, то что нашел было или не по руски и невнятно или по руски и невнятно Улыбаюсь

База UNICODEная.

Решение такое лезем в реестр HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_ODACHome1NLS_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


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

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

NLS — это первым делом, сразу после установки. В том числе и для клиентов.

« Последнее редактирование: 08-06-2007 06:14 от RXL »
Записан

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

Антон (LogRus)

Глобальный модератор

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

Внимание! Люблю сахар в кубиках!

WWW


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

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


Записан

Странно всё это….

Sla

Команда клуба

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

WWW


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

Offtopic:

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

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

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


Записан

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

Антон (LogRus)

Глобальный модератор

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

Внимание! Люблю сахар в кубиках!

WWW


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


Записан

Странно всё это….

RXL

Технический
Администратор

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

WWW


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


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


Записан

Странно всё это….

RXL

Технический
Администратор

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

WWW


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


Записан

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

Falsehood

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

ru
Offline Offline
Пол: Женский

не может быть


привет.

Решение такое лезем в реестр HKEY_LOCAL_MACHINESOFTWAREORACLEKEY_ODACHome1NLS_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


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

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


Записан

Странно всё это….

PooH

Глобальный модератор

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

… и можно без хлеба!


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


Записан

Удачного всем кодинга! -=x[PooH]x=-

Falsehood

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

ru
Offline Offline
Пол: Женский

не может быть


Лёш, спасибо Улыбаюсь

при подключении к БД 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
Пол: Мужской

… и можно без хлеба!


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
Пол: Женский

не может быть


ORACLE_HOME = D:oraclexeapporacleproduct10.2.0server


Записан

Славная трава...

PooH

Глобальный модератор

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

… и можно без хлеба!


вот, что нашел: 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}jdbclib

Второй путь проще. Методом проб выяснилось, что для исправления ошибки необходимо заменить библиотеки ojdbc14dms.jar и ojdbc14.jar драйвера Oracle JDBC, который поставляется вместе с JDeveloper 10g, на библиотеки драйвера 10.1.0.3.

Заменяем библиотеки, которые находятся по пути {jdeveloper_home}jdbclib.
После этого все отлично работает.

Библиотеки можно скачать тут (http://www.ors.kz/mod/stat.php?dir=20142210020052006110652/lib10103.rar&id=34&id_type=170).


Записан

Удачного всем кодинга! -=x[PooH]x=-

Falsehood

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

ru
Offline Offline
Пол: Женский

не может быть


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


Записан

Славная трава...

Andrusha

Новенький

ua
Offline Offline


Здраствуйте ребята.
Прошу помощи в решении проблемы похожей на описаную 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


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


Andrusha, если ты прочел последние два поста, то должен понять, что ей помогло обновление клиентских драйверов БД до 10.1.0.3. На текущий момент это жутко старый драйвер. Обратись на работ в службу, заведующую обновлением ПО и затребуй обновление ораклового клиента до 10.2.0.1. Т.е. не надо делать это самостоятельно—запроси соответствующий отдел.

Я для NSL_LANG на виндовых клиентах ставлю NLS_LANG=AMERICAN_AMERICA.CL8MSWIN1251 и настраиваю форматы дат в программе через ALTER SESSION. Работает стабильно.

Спасибо большее за оперативный подробный ответ.
Кажется я понял о чем Вы.
А оракловский клиент 10+ существует бесплатная версия? И подойдет ли она для для данных целей?


Записан
Sla

Команда клуба

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

WWW


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

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


Записан

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

Andrusha

Новенький

ua
Offline Offline


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


Записан
RXL

Технический
Администратор

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

WWW


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

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


Записан

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

Andrusha

Новенький

ua
Offline Offline


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


Записан
RXL

Технический
Администратор

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

WWW


Как будет удобно.


Записан

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

an0521

Новенький

ru
Offline Offline


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


Записан
RXL

Технический
Администратор

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

WWW


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

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


Записан

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

an0521

Новенький

ru
Offline Offline


Как приконнектится к серверу 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


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


Записан

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

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

majkinetor opened this issue

Mar 17, 2017

· 14 comments

Comments

@majkinetor

I am using Windows 10 and latest dbeaver CE.

I get this error when connecting to local XE service:

java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-12705: Cannot access NLS data files or invalid environment specified

This is specific to Dbeaver, sqlplus and SQL Developer can connect without any problems. This connection worked on older versions of EE, I didn’t touch it 6 or so months.

NLS_LANG is checked and it seems OK (otherwise SQL Developer would complain too).

Any ideas ?

@pemmasanikrishna

@majkinetor

No, nothing helps. Like I said, problem is specific to dbeaver, it works in sqlplus / sqldeveloepr.

@serge-rider

sqlplus is native application and uses OCI, SQL developer is shipped with a bunch or Oracle drivers, NLS packages, XML drivers, etc (DBeaver can’t do this because of Oracle license restrictions).

I’m still pretty sure that this problem is a result of some misconfiguration and/or driver jars.
What exactly Oracle driver (and other jars) do you use?

@majkinetor

Using ojdbc7.jar as a driver, no other jars.
Note that only my local XE db doesn’t work. I can connect to remote enterprise db’s without a problem.

@bokanebo

I faced the same problem on brand new Win 10 with ODAC installed as the only one component from Oracle. Yesterday, I changed regional setting on that computer. So remembering that, I changed back date/time/num format from Serbian to English and everything is working fine.
Additional info: Set English format and start DBeaver. All your connections to Oracle will work until you restart DBeaver even if you change format during that session.

@habamax

for me dbeaver.exe -nl en solves the issue

@serge-rider

@habamax

Actually, I have this bug only with ojdbc7.jar.
I have tried dbeaver with ojdbc8.jar and it works for me without dbeaver.exe -nl en.

@majkinetor

I confirm it works with -nl en. Thanks @habamax

@abetobing

2019 and i still read this.
For Mac users out there, go to /Applications/DBeaver.app/Contents/MacOS
Start dbeaver with ./dbeaver -nl en

@demolaokesola

for me dbeaver.exe -nl en solves the issue

This also solved the issue for me in 2020 version 7.3.0.

@dmxunlimit

Add following two properties to /Applications/DBeaver.app/Contents/Eclipse/dbeaver.ini
-Duser.language=en
-Duser.country=US

@Palshyn46

@dmxunlimit thank you. That works for me without changing system settings!

@ItsCosmas

dbeaver.exe -nl en

Thank you, this works and I don’t have to use dbeaver.exe -nl en everytime

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Ora 00257 ошибка архиватора подключите as sysdba только до разрешения проблемы
  • Or trash 08 ошибка