无法删除刚刚创建的表 [英] Can't drop table that was just created
问题描述
我创建了一个名为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_tables
和user_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屋!