jacksan 发表于 2014-1-6 07:54:04

更改系統時間導致ORA-01466

再開發server上,爲了測試需要,
把server的時間修改到了未來某個時間(比如現在是1月6日,改成了1月12日),
修改時間后,又進行了一些DML操作。

過了一段時間后,又把時間改成正確的當前時間。
此時,如果用set transaction read only,
然後任意select 。。。from某個表,
會出現ORA-01466: Unable to read data -- Table definition has changed

如何才能除掉ORA-01466這個錯誤呢?

weiranth 发表于 2014-1-6 10:13:36

If the cause is an old snapshot, then commit or rollback the transaction and resume work.
a creation time-stamp in the future, ensure the system time is set correctly.
If the object creation time-stamp is still greater than the system time, then export the object's
data, drop the object, recreate the object so it has a new creation time-stamp, import the object's data, and resume work.

Liu Maclean(刘相兵 发表于 2014-1-6 13:02:47

$ oerr ora 1466
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


jacksan 发表于 2014-1-6 14:32:22

本帖最后由 jacksan 于 2014-1-7 09:38 编辑

應該所有的transaction都commit過了。
並且我試過restart oracle,結果還是有01466錯誤。
所以我覺得可能需要export-drop-recreate這個schema,不知還有別的方法嗎?
页: [1]
查看完整版本: 更改系統時間導致ORA-01466