使用闪回版本查询报ORA-08186 数据库装的是11GR2。运行闪回版本查询select billno, versions_XID from billcelldtl12 versions between scn minvalue and maxvalue order by versions_xid; 报ORA-08186 同样的语句在测试库就不会有问题。求解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 -- 打开相应表的行迁移允许应该就可以了:alter table billcelldtl12 enable row movement; 不行的。查询flashback_transaction_query 里面的commit_timestamp里的时间 然后通过这个时间戳 用between timestamp就可以。为什么 ?我查询出里面的时间好像总是慢了一天 。是不是有些没有进入undo tablespace? 看错误提示:[oracle@localhost ~]$ oerr ora 0818608186, 00000, "invalid timestamp specified"// *Cause: as stated above// *Action: enter a valid timestampscn和timestamp不是一一对应的。SMON_SCN_TIME是SCN和timestamp的映射表,也是flashback 时间的限制。例如,SCN:339988,339989分别匹配2009-05-30 13:52:00和2009-05-30 13:57:00,则当你通过as of timestamp查询2009-05-30 13:52:00或者2009:05-30 13:56:59这段时间点内的任何时间,oracle都会将其匹配为SCN:339988到undo表空间中查找,也就是说在这个时间内,不管你指定的时间点是什么,查询返回的都将是2009-05-30 13:52:00这个时刻对应的SCN的数据。16:31:22 hr@ORCL (^ω^) select scn,to_char(time_dp,'yyyy/mm/dd hh24:mi:ss') from sys.smon_scn_time; SCN TO_CHAR(TIME_DP,'YYYY/MM/DDHH24:MI:SS' ---------- -------------------------------------- 3361371 2012/09/03 18:23:53 3361948 2012/09/03 18:33:52 3362176 2012/09/03 18:38:53 3362674 2012/09/03 18:48:52 3363615 2012/09/03 19:03:52 3363792 2012/09/03 19:08:53 3364474 2012/09/03 19:18:43 3364715 2012/09/03 19:23:47 3365034 2012/09/03 19:28:48 3365400 2012/09/03 19:38:45 把commit_timestamp用timestamp_to_scn转换为scn试试 sqlplus trace输出 求学习数据库的建议 有谁去大唐微电子面试过嘛! 是否可以以某一列为依据将一行分解为多行的SQL语句? 当表空间满了再继续插入新数据,插入的时候会报错误吗? 如何使用spfile,急,在线等 调查问卷建库,每个问题一条记录,但每个问题可多选,显示时答案要分开显示,那位高人指点,如何处理? 请问一条SQL语句 oracle的表空间怎样设置?是对每一个表分别进行设置,还是对所有表同时进行设置,谢谢 按某时间段查询统计这个时间段(如20160101-20160601)一周内重复2次以上的频率 oracle并发 锁机制是怎么做的呢 查询某表空间下某表中包含某个字段的表名
alter table billcelldtl12 enable row movement;
看错误提示:[oracle@localhost ~]$ oerr ora 08186
08186, 00000, "invalid timestamp specified"
// *Cause: as stated above
// *Action: enter a valid timestamp
scn和timestamp不是一一对应的。SMON_SCN_TIME是SCN和timestamp的映射表,也是flashback 时间的限制。例如,SCN:339988,339989分别匹配2009-05-30 13:52:00和2009-05-30 13:57:00,则当你通过as of timestamp查询2009-05-30 13:52:00或者2009:05-30 13:56:59这段时间点内的任何时间,oracle都会将其匹配为SCN:339988到undo表空间中查找,也就是说在这个时间内,不管你指定的时间点是什么,查询返回的都将是2009-05-30 13:52:00这个时刻对应的SCN的数据。
16:31:22 hr@ORCL (^ω^) select scn,to_char(time_dp,'yyyy/mm/dd hh24:mi:ss') from sys.smon_scn_time;
SCN TO_CHAR(TIME_DP,'YYYY/MM/DDHH24:MI:SS'
---------- --------------------------------------
3361371 2012/09/03 18:23:53
3361948 2012/09/03 18:33:52
3362176 2012/09/03 18:38:53
3362674 2012/09/03 18:48:52
3363615 2012/09/03 19:03:52
3363792 2012/09/03 19:08:53
3364474 2012/09/03 19:18:43
3364715 2012/09/03 19:23:47
3365034 2012/09/03 19:28:48
3365400 2012/09/03 19:38:45
把commit_timestamp用timestamp_to_scn转换为scn试试