一、oracle10g的新特性
drop table test;
flashback table test to before drop;
语句:FLASHBACK TABLE [已删除TABLE名|"RECYCLEBIN中的名字"] TO BEFORE DROP;
二、
Oracle10g对于闪回查询进行了增强,支持更简单的SQL操作,允许对误删除、误更新等DML操作进行闪回。
1. 原表记录
$ sqlplus scott/tiger
SQL> SELECT COUNT(*) FROM emp;
COUNT(*)
----------
12
2.误删除所有记录,并且提交更改。
SQL> delete from emp;
12 rows deleted
SQL> commit;
Commit complete
SQL> select count(*) from emp;
COUNT(*)
----------
0
3.获得某个时间点的EMP表数据
使用as of timestamp语句执行闪回查询:
SQL> select count(*) from emp as of timestamp sysdate - 5/1440;
COUNT(*)
----------
12
查询5分钟前的test表的情况。
4. 恢复数据
SQL> insert into emp select * from emp as of timestamp sysdate - 5/1440;
12 rows inserted
SQL> commit;
Commit complete
SQL> select count(*) from emp;
COUNT(*)
----------
12
drop table test;
flashback table test to before drop;
语句:FLASHBACK TABLE [已删除TABLE名|"RECYCLEBIN中的名字"] TO BEFORE DROP;
二、
Oracle10g对于闪回查询进行了增强,支持更简单的SQL操作,允许对误删除、误更新等DML操作进行闪回。
1. 原表记录
$ sqlplus scott/tiger
SQL> SELECT COUNT(*) FROM emp;
COUNT(*)
----------
12
2.误删除所有记录,并且提交更改。
SQL> delete from emp;
12 rows deleted
SQL> commit;
Commit complete
SQL> select count(*) from emp;
COUNT(*)
----------
0
3.获得某个时间点的EMP表数据
使用as of timestamp语句执行闪回查询:
SQL> select count(*) from emp as of timestamp sysdate - 5/1440;
COUNT(*)
----------
12
查询5分钟前的test表的情况。
4. 恢复数据
SQL> insert into emp select * from emp as of timestamp sysdate - 5/1440;
12 rows inserted
SQL> commit;
Commit complete
SQL> select count(*) from emp;
COUNT(*)
----------
12