ORA-00604:递归SQL层1出现错误 * ORA-00942:表或视图不存在
http://tech.ddvip.com/2007-05/117880760423940_2.html
1. drop user出现问题
报出以下错误后退出
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist .
关于 recursive SQL 错误我们有必要做个简单说明.
我们知道,当我们发出一条简单的命令以后
Oracle数据库要在后台解析这条命令,并转换为Oracle数据库的一系列后台操作.
这些后台操作统称为递归sql.
比如create table这样一条简单的DDL命令,Oracle数据库在后台,实际上要把这个命令转换为对于obj$,tab$,col$等底层表的插入操作.Oracle所作的工作可能比我们有时候想的要复杂的多.
The reason for this problem seems to be an Upgrade for Label-Security even if it's not installed. //Label security 没有安装,居然补丁去默认给升级?
解决方案:
shutdown immediate;
startup migrate;
alter view lbacsys.lbac$all_table_policies compile;
alter package lbacsys.lbac_events compile body;
shutdown immediate;
startup;
支持人员说这是个Bug.但是普通用户不可见.
==================================
SDO_GEOM_METADATA_TABLE表/视图不存在所致
ORA-00604 error occurred at recursive SQL level string
记得有个高手总结了关于ORA-00604/ORA-04031问题的解决:
修改INIT.ora 添加 _db_handles_cached = 0
该错误最常见的原因是数据库文件initSID.ora中的参数OPEN_CURSORS值太小。可以修改initSID.ora文件,OPEN_CURSORS的值一般为255.修改完后,宕下ORACLE,再重新启动。
还可以设置并启动数据库的事件跟踪功能。在initSID.ora中加上一行:event = "00604 trace name errorstack"
造成ORA-604错误的其它原因可能有:
- initSID.ora中,参数DC_FREE_EXTENTS或ROW_CACHE_ENQUEUES太低。可以根据操作系统和数据库的情况,适当增加这两个参数的值,宕下并重新启动ORACLE.
- 运行超出空间(伴随ORA-1547错误)。这时,要对表空间添加新文件,即增加表空间的大小。
- 达到了MAX_EXTENTS(伴随ORA-1556错误)。如果这样,就要修改表,允许更多的扩展。请从技术手册中查找MAX_EXTENTS的最大值。如果已经达到了最大值,必须用compress extents选项,把表卸出(export),再导入(import)数据库中。
_+++++++++++++++++++++++
我用过此方法不过是在9.2.0.1升级到9.2.0.4,
方法:
后来也是以sysdba身份运行catexp.sql,后再以sysdba身份运行catpatch.sql
shutdown immediate;
startup migrate;
alter view lbacsys.lbac$all_table_policies compile;
alter package lbacsys.lbac_events compile body;
shutdown immediate;
startup;
祥细请看http://www.dbanotes.net/Oracle/a_case_about_export.htm
分享到:
相关推荐
ORA-00604: 递归SQL层1出现错误 ORA-03106: 致命的双工通信协议错误 ORA-02063: 紧接着line(源于dblink) 以及 ORA-04052: 在查找远程对象时出错 ORA-00604: 递归SQL层1出现错误 ORA-03120: 双工转换例行程序:整数...
21. ORA-00036: 超过递归SQL调用的最大级别,这可能是因为无限递归或循环函数调用。 22. ORA-00037: 无法转换到属于不同服务器组的会话,可能涉及到分布式数据库环境。 23. ORA-00038: 无法创建会话,因为服务器组...
#### ORA-00036: 超过递归SQL()级的最大值 当递归查询级别超过了最大限制时触发。 #### ORA-00037: 无法转换到属于不同服务器组的会话 当尝试将会话从一个服务器组转移到另一个不同的服务器组时触发。 #### ORA-...
递归SQL操作达到最大深度,可能有无限循环或错误的递归逻辑。 22. ORA-00037: 无法切换到属于不同服务器组的会话 尝试在不同的服务器组间切换会话,但系统不支持。 23. ORA-00038: 无法创建会话: 服务器组属于另...
21. ORA-00036: 超过递归SQL级别的最大值,这可能是由于递归查询过于复杂。 22. ORA-00037: 无法转换到属于不同服务器组的会话,这涉及到数据库的分布式特性。 23. ORA-00038: 无法创建会话:服务器组属于其他用户...
8. ORA-00036: 超过递归SQL的最大深度 解决方案是检查是否存在无限递归循环,或者调整MAX_RECURSION参数。 9. ORA-00037, ORA-00038, ORA-00039: 会话转换或创建失败 这些错误通常涉及会话的权限或状态。解决方法...
8. ORA-00036: 表示递归SQL调用超过了最大级别,这通常意味着存在无限递归的情况,需要检查和修正查询逻辑。 9. ORA-00054: 资源正忙,需要指定NOWAIT,意味着操作需要等待资源释放,可以考虑使用NOWAIT选项或调整...
21. ORA-00036: 超过递归SQL的最大级数,通常与递归函数或存储过程中的无限循环有关。 22. ORA-00037: 无法转换到属于不同服务器组的会话,这是因为会话和服务器组之间存在绑定。 23. ORA-00038: 无法创建会话:...
21. **ORA-00036: 超过递归 SQL() 级的最大值:** 递归SQL操作超过了允许的最大深度。 22. **ORA-00037: 无法转换到属于不同服务器组的会话:** 会话转换操作涉及到了不同的服务器组,这是不允许的。 23. **ORA-...
#### ORA-00036: 超过递归SQL()级的最大值 执行递归SQL操作时达到最大递归深度,通常需要检查SQL语句或应用程序逻辑以避免无限递归。 #### ORA-00037: 无法转换到属于不同服务器组的会话 尝试将会话从一个服务器组...
递归SQL深度超过设定限制,可能需要优化查询或调整参数`MAX_RECURSION_LEVEL`。 这些错误只是Oracle数据库中的一部分,每个错误都有其特定的原因和解决策略。在遇到这些问题时,通常需要根据错误的具体信息、数据库...
11. ORA-00034至ORA-00036: 这些错误涉及到PL/SQL会话、许可证限制和递归SQL操作。可能需要优化PL/SQL代码,检查许可证设置,或调整系统资源限制。 12. ORA-00037至ORA-00059: 这些错误与会话间的转换、资源争用、...
**ORA-00036: 超过递归SQL()级的最大值** - **描述**: SQL递归调用级别超过最大允许值。 - **解决方法**: 减少递归深度或调整递归SQL的最大级别。 **ORA-00037: 无法转换到属于不同服务器组的会话** - **描述**: ...
### Oracle 11g 错误码大全解析 #### ORA-00001: 违反唯一约束条件 **描述**: 当尝试插入或更新一个已经存在的唯一键值时触发此错误。确保数据符合唯一性约束。 **解决方法**: - 检查并修改数据,确保不会重复...
递归SQL调用达到最大深度,需要检查SQL语句是否存在无限递归情况。 18. ORA-00037: 无法转换到属于不同服务器组的会话 尝试将会话转移到不同的服务器组,但当前操作不支持。 19. ORA-00038: 无法创建会话: ...
knowledge point 1: ORACLE 错误码大全 ORACLE 错误码大全提供了一个详细的错误码列表,涵盖了各种类型的错误,包括会话错误、锁定错误、存储过程错误、网络通信错误等。这使得开发者和管理员可以快速定位和解决...
### Oracle错误代码详解 #### ORA-00001: 违反唯一约束条件 - **描述**:当尝试插入或更新一个行时,如果该行违反了表中的唯一约束,则会出现此错误。 - **解决方法**: - 检查数据是否符合表结构中的唯一性约束。...