首页 > 代码库 > 闪回版本查询

闪回版本查询

闪回版本查询表现的是数据表的一个时间段的所有快照变化记录,说起来比较简单,但是却不那么好理解,如果简单来说我们可以把数据表的每一个时间段都细化为一个快照形式也就是我们所说的版本,而这个版本在不停的变化因为有更新dml操作,而闪回版本查询就是记录时间段内每个版本的“生命周期”。

  

select versions_startscn startscn,versions_endscn endscn,versions_xid xid,versions_operation operation , id,name,desc1,desc2 from flashback_of
  versions between scn minvalue and maxvalue where id in(‘02‘);

  结果如下:

  1 80340280                    05000B00D5060000   U 02 name2 update upadte
  2 80340226   80340280   07000000D1060000  U  02 name2 update2 upadte2
  3                  80340226                                       02 name2 desc12 desc22

  查看一条记录的多个版本的声明周期。闪回版本查询各条记录都是记录的时间段的版本快照。

  其中的versions_startscn表示的是版本的创建时间,versions_endscn表示的是版本的结束时间

  ersions_operation表示的创建该版本的对应的dml类型,有update、insert和delete

  而versions_xid表示的则是该版本对应的事务id,通过versions_xid可以对应闪回事务查询视图flashback_transaction_query的xid列查看对应的反向操作undo_sql

  注释:从查询结果可以看出一个版本的结束scn就是另一个版本的startscn。当该版本被修改后endscn才有值,同时该值是下一个版本的startscn。这样就可以清晰的分析

     出每条记录每个版本的变化情况,可以根据需要按照不同的版本要求恢复数据。

  

闪回版本查询