我不小心掉了一张相当大的桌子 - 没有启用回收站。我相当肯定数据仍然存在于UNDO表空间中,但我不知道如何解决它。我重新创建了表,就像它被丢弃之前一样 - 结构完全相同。但是,当我尝试闪回表时,我收到此错误:
flashback table tablex to timestamp (systimestamp - interval '120' minute);
Error: 01466
DBD::Oracle::db do failed: ORA-01466: unable to read data - table definition has changed
知道如何克服这个错误吗?从我所做的所有搜索中,似乎它认为该表在结构上与删除时的结构不同。
答案 0 :(得分:2)
我认为您不应该自己重新创建表格 - 当您闪回时,Oracle会为您重新创建表格,我推荐以下文章:http://www.oracle-base.com/articles/10g/flashback-10g.php#flashback_table
示例:
CREATE TABLE flashback_table_test (
id NUMBER CONSTRAINT pk_flashback_table_test PRIMARY KEY
);
DROP TABLE flashback_table_test;
FLASHBACK TABLE flashback_table_test TO BEFORE DROP;
我认为在手动重新创建表格时,您需要使用某个SCN号码将其闪回。