WEB开发网
开发学院数据库Oracle 案例学习Oracle错误:ORA-00604 阅读

案例学习Oracle错误:ORA-00604

 2007-05-10 12:19:56 来源:WEB开发网   
核心提示:ORA-00604 error occurred at recursive SQL level stringCause:An error occurred while processing a recursive SQL statement (a statement applying to internal dicti

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 Customer Support.

ORA-00604: 递归某个SQL 层时出现错误

原因:在运行一条递归SQL语句(该语句将应用于对内部表或数据字典的操作)时,发生错误。

方案:如果上述描述的错误所在栈可以被修复,则修复并继续运行;否则,请联系Oracle客服。当然,那是Oracle官方的解决办法。我曾经记得有个高手总结了关于ORA-00604/ORA-04031问题的解决:

修改INIT.ora

添加

_db_handles_cached = 0

并重新启动数据库.

分析:ORA-00604这个信息表明,在数据库执行内部SQL语句时,发生了错误。比如,要往表中插入一行数据,但没有可扩展的空间。ORACLE于是去查寻,哪儿可以建立下一个扩展空间,它有多大小,但没有成功。一般在发生ORA-00604错误时,还伴随着其它的错误,例如:ORA-1547等。

首先,应当检查警告文件alertSID.log,查找有关ORA-600类的信息。

该错误最常见的原因是数据库文件initSID.ora中的参数OPEN_CURSORS值太小。可以修改initSID.ora文件,OPEN_CURSORS的值一般为255。修改完后,宕下ORACLE,再重新启动。

还可以设置并启动数据库的事件跟踪功能。在initSID.ora中加上一行:

event = "00604 trace name errorstack"

宕下并重新启动ORACLE,使这个事件跟踪参数起作用。这样,当再发生ORA-604错误时,有关信息就保存在TRACE文件中。

1 2 3 4 5 6  下一页

Tags:案例 学习 Oracle

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接