- Новые
- Лучшие
- Все
Исправляем ошибку ORA-00604: error occured at recursive SQL level 1ORA-12705 в Oracle SQL Developer
Осваиваем Oracle и PL/SQL
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
22352
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
In my previous article, I have explained about the most common errors in Oracle. In This article, I will try to explain another most common error, which has been searched approximately 20000 times in a month by DBAs and developers. While working with a database and performing different scenarios of database every developer or dba might have faced error called as ORA-00604: error occurred at recursive SQL level 1. While working with databases I have frequently faced ORA-00604: recursive error and struggled to solve and debug this issue. I would like to share my experience working and debugging this error. This is most common error and very tricky to solve it.
A recursive SQL statement is a statement that is applied to internal dictionary table.
Why ORA-00604 error will come?
There may be multiple reasons for which this error will come. In this section, I will try to explain what will be possible root cause of this error. Because there are many, possible reasons for the error, Oracle simply states that if the situation described in the next error on the stack can be corrected, it should be corrected. Otherwise, the user should contact the Oracle support line.
Reason 1:
Table and view does not Exist
This may be the one possible cause of this error. If due to any reason if one of the table (system table of oracle) is deleted and user tries to insert or update the data in the table this error will occur.
Reason 2:
Trigger Error
This may be another cause of the error. If trigger attempting to insert the records in audit_log table and audit_log table is dropped by cleanup script then this kind of error will come. This kind of error will occur mostly in system triggers.
Reason 3:
User attempts to run newly created table
When user attempts to run the newly created table this error will occure.The package related to the newly created table needs to be compiled to resolve this error.
NO TIME TO READ CLICK HERE TO GET THIS ARTICLE
Resolution of the error:
I have explained that there is no specific reason of this error. There might be the different possible causes of this error, which I have explained above. In this section, I will try to explain the resolutions of this error.
Solution 1:
Check for table availability
Check for whether all tables used in the triggers are available or not in that oracle schema.If the table is not available then user needs to create the table.
Solution 2:
Trigger Issue Resolution
To check whether this issue is because of trigger execution you need to check:
Alter system set “_system_trig_enabled”=FALSE;
View all triggers where trigger_type is before each row and after each row:
SELECT * FROM dba_triggers
WHERE trigger_type not in (‘before each row’,’after each row’);
To find the most relevant triggers, filter the triggering_event column.
Find the trigger that is causing the problem and disable it or drop it to resolve the issue. Usually, this error occurs in the Oracle database by the system level triggers on DDL or SYSTEM events.
Solution 3:
New table creation issue
If this error will occur due to newly created table then user needs to check the related system packages of oracle and compile package specification and body once.
Example:
User needs to recompile DBMS_CDC_PUBLISH package. User needs to compile all invalid packages that are no longer viewed.So this may be the third possible solution to resolve this kind of error.
Hope you like this article.Please don’t forget to share it with everyone.
Error ORA-00604 is a commonly seen error by Oracle users, and one that can sometimes be tricky to solve. ORA-00604 occurs while processing a recursive SQL statement. A recursive SQL statement is a statement that is applied to internal dictionary tables.
Because there are many possible reasons for the error, Oracle simply states that if the situation described in the next error on the stack can be corrected, it should be corrected. Otherwise, the user should contact the Oracle support line.
An example of error ORA-00604 in Oracle 11g is “error occurred at recursive SQL level 1” in which table or view does not exist. A possible cause for recursive SQL errors is a trigger. If this is the case, you may have experienced the trigger attempting to insert records into an audit log table, the audit log table being dropped by your cleanup script, or a trigger that fires for every DDL statement.
To make sure that the error is related to a trigger issue, execute the following SQL statement:
Alter system set “_system_trig_enabled”=FALSE;
To view all of the triggers, execute the following SQL statement:
SELECT * FROM dba_triggers
WHERE trigger_type not in (‘before each row’,’after each row’)
To find the most relevant triggers, filter the triggering_event column.
Find the trigger that is causing the problem and disable it or drop it to resolve the issue. Usually, this error occurs in the Oracle database by the system level triggers on DDL or SYSTEM events.
Another example of error ORA-00604 is when the user attempts to run a newly-created table using SELECT* from cdc. In this case, the DBMS_CDC_PUBLISH package needs to be recompiled using SYS. The user should recompile until invalid packages are no longer viewed.
The Error ORA-00604 message itself does not indicate the actual error, and the user must look at the directly preceding message to determine the reason for the error. As always, check the syntax and spelling of your code to ensure no careless errors have been made. Make use of the debugger when running into issues. If you continue to face problems with this error, contact your database administrator. Fixing error ORA-00604 can especially be difficult as there are many possible reasons for the message. Consider consulting a professional well versed in Oracle issues if the problem persists. Make sure to check their credentials to ensure that they have the appropriate knowledge, experience and expertise to handle your specific needs.