读书人

drop table 报ora-00942 表也许视图不

发布时间: 2012-08-30 09:55:54 作者: rapoo

drop table 报ora-00942 表或者视图不存在?
drop table AAAA
报如下错误:

ORA-00604: 递归 SQL 级别 1 出现错误
ora-00942 表或者视图不存在

但是我这个用户可以select、update、delete表里面的数据,也可以alter表的结构,但就是删除不了表。而且我用sysdba用户登陆进去之后,也不能drop table,这是为什么啊?

我的oracle10g是按照在win 2003 上面的。

是不是别人在我这里设置过啥东西?

[解决办法]
用sysdba用户登陆进去之后,drop table user.AAAA;
表名前加上用户名了吗。。。
[解决办法]
在网上看到类似的报错,
http://liuxh6.itpub.net/post/528/470116
[解决办法]
ORA-00604: 递归 SQL 级别 1 出现错误

是不是有什么表是依赖这个表存在的,所以不能删除?
[解决办法]

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

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

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

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

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

  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 drop 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.

  对于本例,为MDSYS.SDO_GEOM_METADATA_TABLE创建一个同义词即可解决,是相对简单的情况。

(2)

Now the user can be dropped connected as SYSTEM.
Related Documents
ORA-604 and ORA-942 Reported During DROP USER CASCA

4.实际处理

  MDSYS.SDO_GEOM_METADATA_TABLE为Spatial对象

  如果未使用Spatial选项,可以删除

SQL> connect / as sysdbaConnected.
SQL> select * from dba_sdo_geom_metadata order by owner;
select * from dba_sdo_geom_metadata order by owner
*
ERROR at line 1:
ORA-00942: table or view does not exist
ORA-04063: view "MDSYS.DBA_SDO_GEOM_METADATA" has errors
SQL> select object_name from dba_objects where object_name like '%SDO%';
OBJECT_NAME
ALL_SDO_GEOM_METADATA
ALL_SDO_INDEX_INFO
ALL_SDO_INDEX_METADATA
DBA_SDO_GEOM_METADATA
DBA_SDO_INDEX_INFO
DBA_SDO_INDEX_METADATA
....
DBA_SDO_GEOM_METADATA
DBA_SDO_INDEX_INFO
...
SDO_WITHIN_DISTANCE
USER_SDO_GEOM_METADATA
USER_SDO_INDEX_INFO
USER_SDO_INDEX_METADATA
88 rows selected.
SQL> drop user MDSYS cascade;
User dropped.
SQL> select owner,type_name from dba_types where type_name like 'SDO%';
no rows selected
SQL>
SQL> alter session set sql_trace=true;
Session altered.


SQL> drop user wapcomm;
User dropped.
SQL> alter session set sql_trace=false;
Session altered.
SQL> exit
Disconnected from Oracle8i Enterprise Edition Release 8.1.7.4.0 - 64bit Production
With the Partitioning option
JServer Release 8.1.7.4.0 - 64bit Production

  这时用户得以顺利drop


转自
http://space.itpub.net/html/89/35489-84515.html
[解决办法]
看看有没有触发器之类的东西限制
[解决办法]
递归SQL

估计是你对这个表做过什么操作吧
比如说被其他对象参照 或者审计……之类
[解决办法]
用户也可以抛出oracle系统错误的吧
[解决办法]
是不是你公司的 DBA没给你开—ROP的权限
[解决办法]

探讨
引用:
是不是你公司的 DBA没给你开—ROP的权限


我用dba登陆进去了,都drop不了啊!不是权限的问题啊!

[解决办法]
。。楼上的哥们 怎么推断出来的 说说听听
[解决办法]
探讨
。。楼上的哥们 怎么推断出来的 说说听听

[解决办法]
探讨
引用:
。。楼上的哥们 怎么推断出来的 说说听听


  呵呵!我几个月前在公司工作也遇到过这种情况。
当时也没解决,上网查了很多资料也解决不了。
后来找到公司的一个资深DB才解决。

[解决办法]
做个sql trace看看是哪里出现的问题,有可能是相关的系统的表出现问题。



[解决办法]
探讨


确实有可能
http://kachy.blog.51cto.com/270625/53177

[解决办法]
还有这么诡异的解释啊,dual里多了一条记录?

那么楼主的问题解决了没有呢?
[解决办法]
好像空也是不正常
有一条记录是正常的吧
http://blog.csdn.net/wh62592855/archive/2009/11/03/4764961.aspx
[解决办法]
诡异的问题 没遇到过
[解决办法]
探讨
怎么弄也没有搞定,看来只有重装oracle系统了啊!

[解决办法]
探讨
引用:
引用:
怎么弄也没有搞定,看来只有重装oracle系统了啊!


做个sql trace看看哎呀。


不知道怎么做啊!

读书人网 >oracle

热点推荐