Bo's Oracle Station

查看: 2198|回复: 2

闪回查询的疑问

[复制链接]

81

主题

181

帖子

781

积分

高级会员

Rank: 4

积分
781
发表于 2016-5-24 16:03:20 | 显示全部楼层 |阅读模式
反sql的命令已经执行了
alter database add supplemental  log data;
alter database add supplemental log data ( primary key ) columns;

先执行
update hr.employees set salary=salary*5;

再查询,能看到107行记录
select  * from flashback_Transaction_query
       where table_name='EMPLOYEES' and logon_user='hr';

但是此后,在此修改了employee_id=100的salary值
update employees set salary=25000 where employee_id=100;

再查询的时候,看不到修改salary=25000 的结果
select  * from flashback_Transaction_query
       where table_name='EMPLOYEES' and logon_user='hr';

同时几个versions_xid查询出来是空值
select versions_xid,versions_startscn,versions_endscn,versions_operation,SALARY
       from hr.employees
       versions between scn minvalue and maxvalue
       where employee_id=100
       ;

不明白为什么会这样?中间是否漏做了什么?
回复

使用道具 举报

81

主题

181

帖子

781

积分

高级会员

Rank: 4

积分
781
 楼主| 发表于 2016-5-25 13:54:40 | 显示全部楼层
我知道原因了,中间等了比较久,是undo过期了
回复 支持 反对

使用道具 举报

1005

主题

1469

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
12012
发表于 2016-5-26 11:05:02 | 显示全部楼层
lujiaguai 发表于 2016-5-25 13:54
我知道原因了,中间等了比较久,是undo过期了

select  * from flashback_Transaction_query
       where table_name='EMPLOYEES' and logon_user='hr';

这句是这样的吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Bo's Oracle Station   

GMT+8, 2024-12-5 10:28 , Processed in 0.064692 second(s), 24 queries .

快速回复 返回顶部 返回列表