此问题与one I posted yesterday有关,但具有更多含义。Oracle - 无法删除表格
情况是:我无法下降ANY表。这里有一个例子:
SQL> CREATE TABLE FOO (BAR NUMBER) TABLESPACE SYSTEM
/
Table created.
SQL> SELECT COUNT(1) FROM FOO;
COUNT(1)
----------
0
SQL> DROP TABLE FOO;
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 19
所以,表似乎存在,但我不能够放弃它。
注意错误ORA-00604:在递归SQL级别1处发生错误。如果我尝试删除一个不存在的表,这个错误不会出现:
SQL> DROP TABLE NON_EXISTING_TABLE
ERROR at line 1:
ORA-00942: table or view does not exist
不知何故,该系统无法找到表在下降时间。
oracle安装和数据库本身是新的(一天的旧)。
编辑 - 我用重试另一个表空间和用户(我刚刚创建的)这个测试,我得到一个稍微不同的行为:使用SYS
,我得到了DROP
错误后,我仍然可以从表中选择。但是,使用这个新用户后,我得到了DROP
错误,我不再可以从表中SELECT。
解决方案
我们发现了问题所在:MDSYS.SDO_GEOR_SYSDATA_TABLE失踪,防止滴operation.The解决方案是恢复该表。这里是完整的解决方案,由Gaurav Soni(顺便说一下,非常感谢)。
运行脚本catmd.sql(位于$ ORACLE_HOME/md/admin目录中)。
catmd.sql脚本是加载数据库中Oracle空间所需的所有对象的脚本。然后放下用户。
你也可以参考Oracle metalinks
Steps for Manual Installation of Oracle Spatial Data Option
Dropping user results in ORA-942 against SDO_GEOM_METADATA_TABLE
你安装了哪个oracle版本? [链接](http://www.dba-oracle.com/sf_ora_00604_error_occurred_and_recursive_sql_level_string.htm) – 2012-03-23 11:34:30
Oracle数据库10g快捷版版本10.2.0.1.0 - 生产 – jpaires 2012-03-23 11:40:40
有点远景,但它表现得像其他东西发生在这里。 DATABASE或您当前的架构上是否有DROP触发器? – 2012-03-23 12:02:34