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

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

 2007-05-10 12:16:44 来源:WEB开发网   
核心提示: 注意,此处显示了对该行所作的所有更改,Oracle 10G新特性之闪回查询深入分析(3),甚至包括该行被删除和重新插入的情况,VERSION_OPERATION 列显示对该行执行了什么操作 (Insert/Update/Delete),找出一段时期中的变更现在,让我们来看如何有效地使用这些

注意,此处显示了对该行所作的所有更改,甚至包括该行被删除和重新插入的情况。VERSION_OPERATION 列显示对该行执行了什么操作 (Insert/Update/Delete)。所做的这些工作不需要历史表或额外的列。

在上述查询中,列 versions_starttime、versions_endtime、versions_xid、versions_operation 是伪列,与 ROWNUM、LEVEL 等其他熟悉的伪列相类似。其他伪列 — 如 VERSIONS_STARTSCN 和 VERSIONS_ENDSCN — 显示了该时刻的系统更改号。列 versions_xid 显示了更改该行的事务标识符。有关该事务的更多详细信息可在视图 FLASHBACK_TRANSACTION_QUERY 中找到,其中列 XID 显示事务 id。例如,使用上述的 VERSIONS_XID 值 000A000D00000029,UNDO_SQL 值显示了实际的语句。

  SELECT UNDO_SQL
  FROM FLASHBACK_TRANSACTION_QUERY
  WHERE XID = '000A000D00000029';
  
  UNDO_SQL
  --------------------------------------------------
  insert into "ANANDA"."RATES"("CURRENCY","RATE")
   values ('EURO','1.1013');

除了实际语句之外,该视图还显示提交操作的时间标记和 SCN、查询开始时的 SCN 和时间标记以及其他信息。

找出一段时期中的变更

现在,让我们来看如何有效地使用这些信息。假设我们需要找出下午 3:57:54 时 RATE 列的值。我们可以执行:

  select rate, versions_starttime, versions_endtime
  from rates versions
  between timestamp
  to_date('12/1/2003 15:57:54','mm/dd/yyyy hh24:mi:ss')
  and to_date('12/1/2003 16:57:55','mm/dd/yyyy hh24:mi:ss')
  /
  
  RATE VERSIONS_STARTTIME   VERSIONS_ENDTIME
  ---------- ---------------------- ----------------------
    1.1011

上一页  1 2 3 4  下一页

Tags:Oracle 特性 查询

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