ORA-01466: unable to read data – table definition has changed
01466, 00000, “unable to read data – table definition has changed”
// *Cause: Query parsed after tbl (or index) change, and executed
// w/old snapshot
// *Action: commit (or rollback) transaction, and re-execute
While selecing a table for a specific point of time i faced the error.
15:23:07 SQL> SELECT * FROM soumya.test2 AS OF TIMESTAMP TO_TIMESTAMP(‘2014-10-14 15:22:28’ , ‘YYYY-MM-DD HH24:MI:SS’);
SELECT * FROM soumya.test2 AS OF TIMESTAMP TO_TIMESTAMP(‘2014-10-14 15:22:28’ , ‘YYYY-MM-DD HH24:MI:SS’)
*
ERROR at line 1:
ORA-01466: unable to read data – table definition has changed
Reason:- There could be few reasons behind it.
1. DDLs that alter the structure of a table (such as drop/modify column, move table, drop partition, truncate table/partition, and add constraint) invalidate any existing undo data for
the table. If you try to retrieve data from a time before such a DDL executed, error ORA-01466 occurs.
2.You need to have the time of your client (where you run sqlplus) set to a later (or same) value than the time of your database server.Else such error could generate.
3. This could be caused by a long running snapshot. Try committing or rolling-back all outstanding transactions and try again.
4.It also could happen if the table is newly created .


Leave a Reply