案例学习Oracle错误:ORA-00604(3)

文章作者 100test 发表时间 2007:03:14 13:57:03
来源 100Test.Com百考试题网


案例四:Sql_trace进行Oracle诊断案例

问题说明:很多时候,在我们进行数据库操作时,比如0drop user,0drop table等,经常会遇到这样的错误

ORA-00604: error occurred at recursive SQL level 1 .

这样的提示,很多时候是没有丝毫用处的.本案例就这一类问题提供一个思路及方法供大家参考.

1. 0drop 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所作的工作可能比我们有时候想的要复杂的多.

2.跟踪问题

我们知道Oracle提供sql_trace的功能

可以用于跟踪Oracle数据库的后台递归操作.

通过跟踪文件,我们可以找到问题的所在

以下是格式化(tkprof)后的输出:

The following statement encountered a error during parse:

DELETE FROM SDO_GEOM_METADATA_TABLE WHERE SDO_OWNER = WAPCOMM

Error encountered: ORA-00942

Oracle把错误信息首先呈现出来,我们看到ORA-00942错误是由于SDO_GEOM_METADATA_TABLE表/视图不存在所致,问题由此可以定位.

对于这一类的错误,定位问题以后解决的方法就要依据具体问题原因而定了。

3.问题定位

对于本案例,通过Metalink获得以下解释:

Problem Description

The Oracle Spatial Option has been installed and you are encountering

the following errors while trying to 0drop a user, who has no spatial tables,

connected as SYSTEM:

ERROR at line 1:

ORA-00604: error occurred at recursive SQL level 1

ORA-00942: table or view does not exist

ORA-06512: at line 7

A 942 error trace shows the failing SQL statement as:

DELETE FROM SDO_GEOM_METADATA_TABLE WHERE SDO_OWNER = 

Solution Description

(1)

Create a synonym for SDO_GEOM_METADATA_TABLE under SYSTEM which points to 

MDSYS.SDO_GEOM_METADATA_TABLE.


相关文章


Oracle数据库的常见问题答疑之集锦(4)
Oracle数据库系统使用经验六则简介
案例学习Oracle错误:TNS-00510
Oracle数据库中删除DUAL表后的处理
案例学习Oracle错误:ORA-00604(3)
Oracle数据库的常见问题答疑之集锦(3)
Oracle数据库的常见问题答疑之集锦(2)
案例学习Oracle错误:ORA-00604(2)
案例学习Oracle错误:ORA-00604(4)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛