SQL> connect testuser/testuser
已连接。
SQL> select * from testtable2;
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
11 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
SQL> select dbms_flashback.get_system_change_number fscn from dual;
FSCN
----------
316227956
SQL> update testtable2 set deptno = '55' where dname = 'abc';
已更新 1 行。
SQL> commit;
提交完成。
SQL> select * from testtable2;
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
55 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
SQL> select * from TESTTABLE2 AS OF SCN('316227956');
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
11 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
SQL> INSERT INTO TESTTABLE2 SELECT * FROM TESTTABLE2 AS OF SCN('316227956') WHER
E DEPTNO='11';
已创建 1 行。
SQL> select * from testtable2;
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
55 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
11 abc 123
已选择6行。
SQL> DELETE FROM testtable2 WHERE DEPTNO ='11';
已删除 1 行。
SQL> COMMIT;
提交完成。
SQL> select * from testtable2;
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
55 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
已连接。
SQL> select * from testtable2;
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
11 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
SQL> select dbms_flashback.get_system_change_number fscn from dual;
FSCN
----------
316227956
SQL> update testtable2 set deptno = '55' where dname = 'abc';
已更新 1 行。
SQL> commit;
提交完成。
SQL> select * from testtable2;
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
55 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
SQL> select * from TESTTABLE2 AS OF SCN('316227956');
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
11 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
SQL> INSERT INTO TESTTABLE2 SELECT * FROM TESTTABLE2 AS OF SCN('316227956') WHER
E DEPTNO='11';
已创建 1 行。
SQL> select * from testtable2;
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
55 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
11 abc 123
已选择6行。
SQL> DELETE FROM testtable2 WHERE DEPTNO ='11';
已删除 1 行。
SQL> COMMIT;
提交完成。
SQL> select * from testtable2;
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
55 abc 123
45 sales chicago
46 research dallas
47 bbb 777
1 research dallas
本文演示了如何使用Oracle数据库的闪回特性来恢复表到特定的系统更改号(SCN)。通过实际操作,包括更新表、获取SCN、闪回查询及还原数据等步骤,展示了闪回功能的强大。
1507

被折叠的 条评论
为什么被折叠?



