无法删除刚刚创建的表 [英] Can't drop table that was just created

查看:84
本文介绍了无法删除刚刚创建的表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个名为dual2的表.我在那里有一排,可以从中选择.尝试删除它时,它会产生此错误:

I created a table named dual2. I've a rows there, and can select from it. When attempting to drop it, it produces this error:

第1行出现错误:
ORA-00604:递归SQL级别1发生错误
ORA-00942:表或视图不存在

ERROR at line 1:
ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist

但是,该表仍然存在!它从dba_tablesuser_tables返回.

However, the table still exists! It returns from dba_tables and user_tables.

关于这里发生的事情有什么想法吗?

Any ideas on what's happening here??

替代文字http://img180.imageshack.us/img180/6012/28140463 .png

这是我与plsql开发人员一起获得的表创建脚本:

Here is the script of table creation, that i got with plsql developer:

-- Create table
create table
(
  DUMMY VARCHAR2(1)
)
tablespace SYSTEM
  pctfree 10
  pctused 40
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    minextents 1
    maxextents unlimited
  );

P.S.:p.cambell,感谢您的编辑!对不起,我的英语不好:)

P.S.: p.cambell thanks for editing! and sorry for my bad english :)

推荐答案

规则1从不创建任何东西作为系统(或SYS).这些是内置对象的内置模式.

Rule 1 in NEVER create anything as system (or SYS). These are built-in schemas for built-in objects.

您可能必须以SYSDBA身份进行连接,才能具有足够的特权来删除系统拥有的任何对象.另外,根据安装情况,可能会有一些触发器在放置表(我认为MDSYS有一个)之前触发,并且可能不适用于SYSTEM对象.

You'll probably have to connect as SYSDBA to have sufficient privileges to drop any objects owned by system. Also, depending on the install, there can be triggers that fire before a drop table (I think MDSYS has one) and which might not work for a SYSTEM object.

就个人而言,我很想将数据库炸毁并重新启动,或者在创建对象之前倒退.

Personally, I'd be tempted to blow the database away and start again, or go back to a back from before you created the object.

这篇关于无法删除刚刚创建的表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆