删除表

时间:2017-09-16 20:00:32

标签: sql oracle oracle11g

我正在运行oracle SQL 11g,我试图删除一个表,以便我可以重做整个数据库。我已尝试过以下命令。

DROP TABLE orders AND ORDERS
ALTER TALBE DROP ORDERS
DROP TABLE ORDERS
ALTER TABLE PURGE ORDERS

当我尝试添加新表时,我收到此错误

  

ORA-00955:现有对象已使用名称。

3 个答案:

答案 0 :(得分:1)

ORA-00955已被现有对象

使用
  

尝试创建数据库对象(例如表,   vies)已经存在。用户的数据库对象必须具有   不同的名字。

     

操作:输入数据库对象的唯一名称或修改或删除   现有的对象,因此可以重复使用。

如果尝试创建现有数据库对象,则会抛出ORA-00955 ..

所以你应该先删除表格

DROP TABLE TABLE_NAME

答案 1 :(得分:1)

  

"我已经尝试了以下命令。"

使用正确的命令,它可以工作:

SQL> desc orders
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 ORDER_NO                                  NOT NULL NUMBER
 ORDER_DATE                                NOT NULL DATE

SQL> drop table orders;

Table dropped.

SQL> desc orders
ERROR:
ORA-04043: object orders does not exist


SQL> 

所以,如果它对你不起作用,你做错了什么?

  1. 也许该表是使用双引号创建的,因此它真的称为"Orders"或其他。
  2. 也许您并没有真正运行您认为自己正在运行的命令。您的示例没有终止字符:在SQL * Plus中,我们需要使用;或(在下一行)/结束命令以执行命令。这应该很容易检查,因为Oracle会告诉你Table dropped.你是否知道你实际上放弃了这个表。

答案 2 :(得分:0)

这意味着您的drop table语句未成功,您的表仍然存在。可能是因为丢弃会违反某些外键约束,或者您只是缺乏放弃表所需的权限。