(1) 模拟用户误操作
SQL> conn scott/tiger@demo
已连接。
SQL> host date
当前日期: 2009-02-19 星期四
输入新日期: (年月日)
SQL> host time
当前时间: 16:40:43.29
输入新时间:
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
1975467
SQL> delete from emp where deptno=30;
已删除6行。
SQL> commit;
提交完成。
(2) 使用 FlashBack 查询取得早期时间点表行数据
SQL> select ename,sal,job,deptno from emp as of timestamp
2 to_timestamp('2009-02-19 14:40:43','YYYY-MM-DD HH24:MI:SS')
3 where deptno=30;
ENAME SAL JOB DEPTNO
---------- ---------- --------- ----------
ALLEN 1600 SALESMAN 30
WARD 1250 SALESMAN 30
MARTIN 1250 SALESMAN 30
BLAKE 2850 MANAGER 30
TURNER 1500 SALESMAN 30
JAMES 950 CLERK 30
已选择6行。
SQL> select ename,sal,job,deptno from emp as of scn 1975467 where deptno=30;
ENAME SAL JOB DEPTNO
---------- ---------- --------- ----------
ALLEN 1600 SALESMAN 30
WARD 1250 SALESMAN 30
MARTIN 1250 SALESMAN 30
BLAKE 2850 MANAGER 30
TURNER 1500 SALESMAN 30
JAMES 950 CLERK 30
已选择6行。
(3) 使用 FlashBack 查询恢复表行数据
SQL> insert into emp select * from emp as of scn 1975467 where deptno=30;
已创建6行。
SQL> commit;
提交完成。