WEB开发网
开发学院数据库Oracle Oracle 10G新特性之闪回查询深入分析 阅读

Oracle 10G新特性之闪回查询深入分析

 2007-05-10 12:16:44 来源:WEB开发网   
核心提示: 但是在 Oracle Database 10g 中,闪回版本查询特性不需要维护历史表或存储开始和结束时间,Oracle 10G新特性之闪回查询深入分析(2),使用该特性,您不必进行额外的设置,这时使用闪回查询,您可以找出给定时间点的值;但我们对构建变更的审计线索更感兴趣 — 有

但是在 Oracle Database 10g 中,闪回版本查询特性不需要维护历史表或存储开始和结束时间。使用该特性,您不必进行额外的设置,即可获得某行在过去特定时间的值。

例如,假定该 DBA 在正常业务过程中数次更新汇率 — 甚至删除了某行并重新插入该行:

  insert into rates values ('EURO',1.1012);
  commit;
  update rates set rate = 1.1014;
  commit;
  update rates set rate = 1.1013;
  commit;
  delete rates;
  commit;
  insert into rates values ('EURO',1.1016);
  commit;
  update rates set rate = 1.1011;
  commit;

在进行了这一系列操作后,DBA 将通过以下命令获得 RATE 列的当前提交值:

  SQL> select * from rates;
  
  CURR    RATE
  ---- ----------
  EURO   1.1011

此输出显示 RATE 的当前值,没有显示从第一次创建该行以来发生的所有变更。这时使用闪回查询,您可以找出给定时间点的值;但我们对构建变更的审计线索更感兴趣 — 有些类似于通过便携式摄像机来记录变更,而不只是在特定点拍摄一系列快照。

以下查询显示了对表所做的更改:

select versions_starttime, versions_endtime, versions_xid,
versions_operation, rate
from rates versions between timestamp minvalue and maxvalue
order by VERSIONS_STARTTIME
/
VERSIONS_STARTTIME   VERSIONS_ENDTIME    VERSIONS_XID   V    RATE
---------------------- ---------------------- ---------------- - ----------
01-DEC-03 03.57.12 PM 01-DEC-03 03.57.30 PM 0002002800000C61 I   1.1012
01-DEC-03 03.57.30 PM 01-DEC-03 03.57.39 PM 000A000A00000029 U   1.1014
01-DEC-03 03.57.39 PM 01-DEC-03 03.57.55 PM 000A000B00000029 U   1.1013
01-DEC-03 03.57.55 PM             000A000C00000029 D   1.1013
01-DEC-03 03.58.07 PM 01-DEC-03 03.58.17 PM 000A000D00000029 I   1.1016
01-DEC-03 03.58.17 PM             000A000E00000029 U   1.1011

上一页  1 2 3 4  下一页

Tags:Oracle 特性 查询

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接