ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE 9i flashback 报ORA-01466: 无法读数据 - 表定义已更改

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

原创 Linux操作系统 作者:paulyibinyi 时间:2009-03-10 10:24:23 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
学习数据库

注册时间:2007-12-11

  • 博文量
    902
  • 访问量
    6551830