今天测试flashback_transaction_query,查询falshback_transaction_query,报了一个错误:
SQL> selectXID,commit_scn,commit_timestamp,operation,undo_sql
from
versions
selectXID,commit_scn,commit_timestamp,operation,undo_sql fromflashback_transaction_query q
where q.xid in (select versions_xidfrom flash_tbl versions
between scn 940097 and 940147)
ORA-30052: 下限快照表达式无效
我根据报错的代码谷歌了一下原来是undo_retention设置的值是900秒,可能我恢复的时候已经超过这个时间了吧,然后我把代码全部打好,复制到文档里面,快速执行一下,果然就是。问题解决办法:
修改undo_retentionde值
ALTER SYSTEM SET undo_retention=10800SCOPE=BOTH;
这样的话撤销保留的时间就有3个小时啦...参考资料地址如下:
http://www.eygle.com/archives/2006/09/undo_retention_need_change.html