【Oracle】Drop表后闪回

本文介绍的闪回方式只适用于:删除表的表空间非system,drop语句中没有purge关键字(以上两种情况的误删除操作只能通过日志找回):

1.删除表后直接从回收站闪回

SCOTT@LGR> drop table emp1;

Table dropped.
SCOTT@LGR> select object_name,original_name,operation from recyclebin where original_name='EMP1';

OBJECT_NAME                     ORIGINAL_NAME  OPERATION                  
------------------------------  -------------  ---------
BIN$QxD9et5lIi3gUwEAAH/pOw==$0  EMP1            DROP                  
SCOTT@LGR> flashback table"BIN$QxD9et5lIi3gUwEAAH/pOw==$0" to before drop;

Flashback complete.

2.当数据库中存在和删除表同名的表,则删除表需要在闪回的同时修改为其他名字,否则闪回失败

SCOTT@LGR> drop table emp1;

Table dropped.

SCOTT@LGR> create table emp1 (id number);

Table created.

SCOTT@LGR> select object_name,original_name,operation from recyclebin
  2  where original_name='EMP1';

OBJECT_NAME                    ORIGINAL_NAME    OPERATION                
------------------------------ --------------
BIN$QxD9et5mIi3gUwEAAH/pOw==$0 EMP1             DROP

SCOTT@LGR> flashback table"BIN$QxD9et5mIi3gUwEAAH/pOw==$0" to before drop;
flashback table"BIN$QxD9et5mIi3gUwEAAH/pOw==$0" to before drop
*
ERROR at line 1:
ORA-38312: original name is used by an existing object
SCOTT@LGR> flashback table"BIN$QxD9et5mIi3gUwEAAH/pOw==$0" to before drop rename to emp2;

Flashback complete.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值