首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

回复oracle中用pl sql误删除drop掉的表

2012-08-21 
恢复oracle中用pl sql误删除drop掉的表  FLASHBACK TABLE BIN$04LhcpnqanfgMAAAAAANPw$0 TO BEFORE DR

恢复oracle中用pl sql误删除drop掉的表

  FLASHBACK TABLE "BIN$04LhcpnqanfgMAAAAAANPw==$0" TO BEFORE DROP RENAME TO TEST1;

  这些语句将恢复被删除表的两个版本。

  警告......

  取消删除特性使表恢复其原始名称,但是索引和触发器等相关对象并没有恢复原始名称,它们仍然使用回收站的名称。在表上定义的源(如视图和过程)没有重新编译,仍然保持无效状态。必须手动得到这些原有名称并应用到闪回表。

  信息保留在名为 USER_RECYCLEBIN 的视图中。在对表进行闪回操作前,请使用以下查询来检索原有名称。

  SELECT OBJECT_NAME, ORIGINAL_NAME, TYPE

  FROM USER_RECYCLEBIN

  WHERE BASE_OBJECT = (SELECT BASE_OBJECT FROM USER_RECYCLEBIN

  WHERE ORIGINAL_NAME = 'RECYCLETEST')

  AND ORIGINAL_NAME != 'RECYCLETEST';

  OBJECT_NAME

  ORIGINAL_N TYPE

  --------------------------- - -- --- - -- ----

  BIN$04LhcpnianfgMAAAAAANPw==$0 IN_RT_01

  INDEX

  BIN$04LhcpnganfgMAAAAAANPw==$0 TR_RT

  TRIGGER

  在表进行闪回操作后,表 RECYCLETEST 上的索引和触发器将按照 OBJECT_NAME 列中所示进行命名。根据以上查询,可以使用原始名称重新命名对象,如下所示:

  ALTER INDEX "BIN$04LhcpnianfgMAAAAAANPw==$0" RENAME TO IN_RT_01;

  ALTER TRIGGER "BIN$04LhcpnganfgMAAAAAANPw==$0" RENAME TO TR_RT;

  一个值得注意的例外情况是位图索引。当删除位图索引时,它们并不放置在回收站中 ― 因此无法检索它们。约束名称也无法从视图中检索。必须从其他来源对它们进行重命名。
闪回表的其他用途

  闪回删除表功能不仅限于恢复表的删除操作。与闪回查询类似,您还可以使用它将表恢复到不同的时间点,形如flashback table tmm2076 TO TIMESTAMP to_timestamp('2007-05-22
12:00:00','yyyy-mm-dd hh24:mi:ss')
弹出ORA-08189错误,需要执行以下命令先:
alter table tmm2076 enable row movement这个命令的作用是,允许oracle修改分配给行的rowid。

然后再flashback,数据被恢复完毕。

热点排行