DML操作数据后commit,不能使用rollback回退,可以使用闪回。
闪回:跨越commit,回退,需要时间点。
//查看当前时间点
select timestamp_to_scn(sysdate) scn from dual;
//闪回表
flashback table 表名 to scn 时间点;
//如果此间表结构发生变化不能闪回。
//报错:因为未启用行移动功能,不能闪回表 解决方法:
alter table 表名 enable row movement;
要闪回:必须知道 时间点
闪回删除的表:查看回收站:show recyclebin;(清空回收站:purge recyclebin;)(彻底删除一张表,不过回收站:drop table 表名 purge;)
默认情况下:如果回收站中重名,闪回的是最近一次删除的表
如果闪回的表 和库中目前的表重名,则冲突,必须重命名rename to…
flashback table 表名| to before drop;
flashback table “回收站中的名字” to before drop;
闪回事务查询
闪回dml+commit:依赖时间点scn
闪回事务:依赖的是提交次数