SQL错误:ORA-00955

时间:2015-10-25 09:35:16

标签: sql oracle oracle11g

我无法创建此表。 它说列名已经被另一个对象使用了???

Screenshot

2 个答案:

答案 0 :(得分:2)

  

ORA-00955

错误意味着您的数据库中有一个与您的表名相同的对象。

  • 为新表使用不同的名称
  • 如果您不需要,请删除具有相同名称的现有对象。

要检查现有对象,您可以查询 [ALL | USER | DBA] _OBJECTS 视图:

SELECT object_name, object_type FROM USER_OBJECTS WHERE OBJECT_NAME = 'DEPT_X1';;

答案 1 :(得分:0)

问题不在于您的列名,而在于您的表名。数据库中已经存在一个名为DEPT_X1的表,可能是因为您多次执行此命令。要验证这一点,请执行以下查询:

SELECT * FROM USER_OBJECTS WHERE OBJECT_NAME = 'DEPT_X1';

如果此查询返回数据,则表示数据库中已存在名为DEPT_X1的内容。要查看上面查询返回的数据中OBJECT_TYPE列的内容。如果OBJECT_TYPE = 'TABLE',则表示现有的DEPT_X1是一个表格;如果OBJECT_TYPE = 'SEQUENCE',则表示DEPT_X1是一个序列;让我们说,为了论证,现有的DEPT_X1是一个表,你想摆脱已经存在的那个,所以你可以创建另一个。您需要使用类似于以下内容的DROP TABLE命令:

DROP TABLE DEPT_X1;

成功运行上述内容后,您可以使用现有脚本重新创建表。如果现有的DEPT_X1是某种其他类型的数据库对象,则必须对该特定类型的对象使用正确的DROP命令 - 有许多不同的DROP命令{{3} }。

祝你好运。