设为首页 加入收藏

TOP

oracle11gdroptable后闪回
2015-11-21 02:02:40 来源: 作者: 【 】 浏览:0
Tags:oracle11gdroptable 后闪回
--初始化数据

drop table test purge;

create table test as select * from dba_objects;
delete from test where object_id is null;
alter table test add constraint pk_test_object_id primary key(object_id);
create index ind_t_object_name on test(object_name);

--执行删除操作
drop table test;

select r.object_name,r.original_name,r.operation,r.type from recyclebin r;
OBJECT_NAME ORIGINAL_NAME OPERATION TYPE
------------------------------- ------------------ -------- --------
BIN$FfQ1SQRoVJjgUAoKlg9C7A==$0 TEST DROP TABLE
BIN$FfQ1SQRnVJjgUAoKlg9C7A==$0 PK_TEST_OBJECT_ID DROP INDEX
BIN$FfQ1SQRmVJjgUAoKlg9C7A==$0 IND_T_OBJECT_NAME DROP INDEX

--生成闪回表的语句
select 'flashback table ' || r.original_name || ' to before drop;' cc
from recyclebin r
where type = 'TABLE';
CC
--------------------------------------
flashback table TEST to before drop;

--索引会被闪回,但名称会被改 
select 'alter index "' || r.object_name || '" rename to "' ||
r.original_name || '" ;' ccc
from recyclebin r
where type = 'INDEX';
CCC
---------------------------------------------------------------------------------
alter index "BIN$FfQ1SQRmVJjgUAoKlg9C7A==$0" rename to "IND_T_OBJECT_NAME" ;
alter index "BIN$FfQ1SQRnVJjgUAoKlg9C7A==$0" rename to "PK_TEST_OBJECT_ID" ;


最后执行:
flashback table TEST to before drop;
alter index "BIN$FfQ1SQRiVJjgUAoKlg9C7A==$0" rename to "IND_T_OBJECT_NAME" ;
alter index "BIN$FfQ1SQRjVJjgUAoKlg9C7A==$0" rename to "PK_TEST_OBJECT_ID" ;

?

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇【Oracle】数据库查看表结构命令 下一篇oracle查看当前登陆的用户信息

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: