天天看點

flashback drop

flashback drop 是基于資源回收筒技術的,對于10g,11g的資料庫預設是開啟改功能的,不需要額外設定的。

下面做一些簡單操作示範下。

--建立測試表

create table tmp_pyb_20160419

as

select *

from dba_objects do

where 1=1

and rownum < 1000

;

--删除測試表

drop table tmp_pyb_20160419

;

--查詢測試表,會報 ORA-00942 錯誤

select *

from tmp_pyb_20160419

where 1=1

;

使用 PL/SQL Developer 工具 在 Recycle bin 目錄下可以看到被删除的表

在 資料字典 user_recyclebin 可以看到被删除的表

請注意object_name,original_name 列,感覺

oracle 是對 table 做了的 rename to BIN$MNXlPuGsbj7gUyoDAwobhQ==$0

如果要恢複被删除的表則執行如下操作:

alter table tmp_pyb_20160419 enable row movement;

flashback  table tmp_pyb_20160419 to

before drop;

如果該schema 下已經有表或者視圖 tmp_pyb_20160419

flashback table tmp_pyb_20160419 to

before drop rename to

xxxxx;