如何检索已删除的表格?

时间:2019-04-16 21:43:44

标签: sql oracle oracle12c

我不小心从oracle数据库中删除了一个名为DEPARTMENT的表,我想将其还原。所以我用谷歌搜索并找到了解决方案。

这是我所做的:

SHOW RECYCLEBIN;

CRIMINALS              BIN$hqnw1JViXO/gUwPAcgqn3A==$0 TABLE       2019-04-16:13:17:16 
DEPARTMENT             BIN$hqnw1JVjXO/gUwPAcgqn3A==$0 TABLE       2019-04-16:13:19:04 
DEPARTMENT             BIN$hqnw1JVkXO/gUwPAcgqn3A==$0 TABLE       2019-04-16:13:21:23 
DEPARTMENT             BIN$hqnw1JVnXO/gUwPAcgqn3A==$0 TABLE       2019-04-16:13:36:34 

FLASHBACK table department TO BEFORE DROP;
Flashback succeeded.

如果您可以看到SHOW RECYCLEBIN QUERY,则可以判断存在多个部门表,并且所有部门都有不同的内容。我的问题是如何将所有三个表的内容合而为一。

1 个答案:

答案 0 :(得分:0)

闪回之后,将每个DEPARTMENT表重命名为新名称,例如

rename department to dept_1;

对除最后一个(名称仍为DEPARTMENT)之外的所有其他对象执行此操作。然后将其余数据插入其中:

insert into department
  select * from dept_1
  union all
  select * from dept_2;

请注意,唯一性可能会受到侵犯;如果表的描述已更改,则select *可能不起作用(因此,您必须一一列出所有列的名称)。

但是,总的来说,这就是如何做到的主意。