SQL> drop table test;
表已丢弃。
SQL> create table test (id number);
表已创建。
SQL>
SQL> insert into test values(100);
已创建 1 行。
SQL> commit;
提交完成。
SQL> select dbms_flashback.get_system_change_number scn from dual;
SCN
----------
2919310
SQL> update test set id=200;
已更新 1 行。
SQL> update test set id=300;
已更新 1 行。
SQL> update test set id=400;
已更新 1 行。
SQL> update test set id=500;
已更新 1 行。
SQL> commit;
提交完成。
SQL> select id from test;
ID
----------
500
SQL> select dbms_flashback.get_system_change_number scn from dual;
SCN
----------
2919335
SQL> select id from test as of scn 2919310;
select id from test as of scn 2919310
*
ERROR 位于第 1 行:
ORA-01466: 无法读数据 - 表定义已更改
SQL> select id from test as of scn 2919310
2 ;
select id from test as of scn 2919310
*
ERROR 位于第 1 行:
ORA-01466: 无法读数据 - 表定义已更改
SQL>
这个是因为
在create表后,等5分钟之后再进行相应的scn查询,del操作,因为9i只支持dml的flashback,create等的ddl不支持,你闪回到的scn有可能dml和ddl在5分钟内,所以导致出现ora-01466错误。
而我这次测试确实在表定义之后马上测试的。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7199859/viewspace-566516/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7199859/viewspace-566516/