1. 首页 > ITPUX技术网 > 正文

ORACLE 9i flashback 报ORA-01466: 无法读数据 – 表定义已更改

ORACLE 9i flashback 报ORA-01466: 无法读数据 – 表定义已更改

[i]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错误。
而我这次测试确实在表定义之后马上测试的。

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息