Oracle数据库通过快照回退表数据与启动表的行移动功能。
开发过程中难免会执行错脚本,尤其是脑子一卡没写where语句去执行了update操作,要是需要执行commit操作的话还好,但是有的Oracle连接工具并不需要执行commit操作,如DbVisualizer。
=。=!
好吧,就是我这个菜鸡,没有写where语句并且执行了update操作并且还是用的DbVisualizer···
好了,上SQL:
--启动行移动功能(不一定非得执行,当执行flashback回退数据时报'ORA-08189:因为未启用行移动功能,不能闪回表'的时候再执行)
alter table table_name enable row movement;
--查看当前Oracle数据库时间
select sysdate from dual;
--查看指定时间下表中数据
select * from table_name as of timestamp to_timestamp('2020-07-08 17:14:00','YYYY-MM-DD HH24:MI:SS');
--回退数据
flashback table table_name to timestamp to_timestamp('2020-07-08 17:14:00','YYYY-MM-DD HH24:MI:SS');