删除了一个Oracle表,现在无法创建一个具有相同名称的表

时间:2018-05-23 15:23:04

标签: sql oracle

我在Oracle 12c上,删除了一个基表WIP_DISCRETE_JOBS。我们创建了一个备份表,如:

CREATE TABLE WDJ_BKP AS (SELECT * FROM WIP_DISCRETE_JOBS) 

DROP TABLE WIP_DISCRETE_JOBS;
COMMIT;

现在,当我尝试从备份表恢复时,它会出错。

CREATE TABLE WIP_DISCRETE_JOBS AS (SELECT * FROM WDJ_BKP) 
ORA-00955 name is already used by existing object. 

但是如果我们用ALL_OBJECTS查询WIP_DISCRETE_JOBS,则不会返回任何行。 有什么问题?

2 个答案:

答案 0 :(得分:1)

我们终于解决了这个问题。问题:Oracle 11gR2以后,数据库有版本,这是版本的类型。你有一个当前版本。您需要在设置版本

后查询ALL_OBJECTS或DBA_OBJECTS

ALTER SESSION SET EDITION=<EDITION NAME>

查看其他版本中的对象。

可以从DBA_EDITIONS

查询所有会话

有些版本具有相同名称的此表的同义词。通过设置每个版本删除同义词后,我们就可以创建表格了。

答案 1 :(得分:-1)

DROP TABLE WIP_DISCRETE_JOBS清除;