iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >ORACLE Flashback Query伪列
  • 658
分享到

ORACLE Flashback Query伪列

2024-04-02 19:04:59 658人浏览 八月长安
摘要

<p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:nORMal;widows:auto;backg

<p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:nORMal;widows:auto;background-color:#FFFFFF;"> &nbsp; &nbsp; 标准Flashback Query的功能是查询过去某个时间点对象中保存的记录信息,在当前时间与指定的过去某个时间点之间,对象可能做过多次修改,如果希望看到这期间的每一次修改,oracle提供了Flashback Version Query。 </p> <p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> &nbsp; &nbsp; Flashback Version Query也是以SELECT子句的形式调用,其用法并不比AS OF复杂,与其类似,只需要在标准SELECT查询后面附加<b style="background-color:inherit;">VERSIONS BETWEEN TIMESTAMP[/SCN] START AND END</b>子句即可。通过VERSIONS BETWEEN能够查看指定时间段内UNDO表空间中记录的不同版本(<b style="background-color:inherit;">注意,只包括被提交的记录</b>)。记录在Version Query中可能会是一对多的关系,如某些记录如果被修改过多次并分别提交,那么在查询的时候,如果修改的操作是在指定的时间段(或SCN)内进行的,则记录每次修改的结果都会被显示出来,这倒是比较有利于我们对数据的修改进行对比,查看数据究竟是如何变化的。 </p> <p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br /> </p> <p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> &nbsp; &nbsp; Version Query中提供了多个伪列,如表所示。 </p> <p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> &nbsp; &nbsp; 表 &nbsp; &nbsp; Flashback Query中Version Query的伪列说明 </p> <div style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <table border="1" cellpadding="2" cellspacing="0" style="font-size:inherit;margin-top:10px;margin-bottom:10px;width:607px;background-color:inherit;"> <tbody style="background-color:inherit;"> <tr style="background-color:inherit;"> <td style="Word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;width:164px;"> <p style="background-color:inherit;"> <span lang="EN-US" style="background-color:inherit;"><span style="background-color:inherit;">VERSIONS_STARTSCN<br style="background-color:inherit;" /> VERSIONS_STARTTIME</span></span> </p> </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;width:401px;"> <p style="background-color:inherit;"> <span style="background-color:inherit;">该条记录操作时的<span lang="EN-US" style="background-color:inherit;">SCN</span>或时间,如果为空,表示该行记录是在查询范围外创建的</span> </p> </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;width:164px;"> <p style="background-color:inherit;"> <span lang="EN-US" style="background-color:inherit;"><span style="background-color:inherit;">VERSIONS_ENDSCN</span></span> </p> <p style="background-color:inherit;"> <span lang="EN-US" style="background-color:inherit;"><span style="background-color:inherit;">VERSIONS_ENDTIME</span></span> </p> </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;width:401px;"> <p style="background-color:inherit;"> <span style="background-color:inherit;">该条记录失效时的<span lang="EN-US" style="background-color:inherit;">SCN</span>或时间,如果为空,说明记录当前时间在当前表内不存在,或者已经被删除了,可以配合着<span lang="EN-US" style="background-color:inherit;">VERSIONS_OPERATION</span>列来看,如果<span lang="EN-US" style="background-color:inherit;">VERSIONS_OPERATION</span>列值为<span lang="EN-US" style="background-color:inherit;">D</span>,说明该列已被删除,如果该列为空,则说明记录在这段时间无操作</span> </p> </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;width:164px;"> <p style="background-color:inherit;"> <span lang="EN-US" style="background-color:inherit;"><span style="background-color:inherit;">VERSIONS_XID</span></span> </p> </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;width:401px;"> <p style="background-color:inherit;"> <span style="background-color:inherit;">该操作的事务<span lang="EN-US" style="background-color:inherit;">ID</span></span> </p> </td> </tr> <tr style="background-color:inherit;"> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;width:164px;"> <p style="background-color:inherit;"> <span lang="EN-US" style="background-color:inherit;"><span style="background-color:inherit;">VERSIONS_OPERATION</span></span> </p> </td> <td style="word-break:break-all;border:1px solid #999999;padding:5px 16px 5px 12px;min-height:25px;min-width:25px;height:25px;background-color:inherit;width:401px;"> <p style="background-color:inherit;"> <span style="background-color:inherit;">对该行执行的操作:<span lang="EN-US" style="background-color:inherit;">I</span>表示<span lang="EN-US" style="background-color:inherit;">INSERT</span>,<span lang="EN-US" style="background-color:inherit;">D</span>表示<span lang="EN-US" style="background-color:inherit;">DELETE</span>,<span lang="EN-US" style="background-color:inherit;">U</span>表示<span lang="EN-US" style="background-color:inherit;">UPDATE</span></span> </p> <p style="background-color:inherit;"> <span style="background-color:inherit;">提示:对于索引键的<span lang="EN-US" style="background-color:inherit;">update</span>操作,版本查询可能会将其识别成两个操作:<span lang="EN-US" style="background-color:inherit;">DELETE</span>和<span lang="EN-US" style="background-color:inherit;">INSERT</span></span> </p> </td> </tr> </tbody> </table> </div> <p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> <br /> </p> <p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 相关知识点: </p> <p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> &nbsp; &nbsp; 什么是伪列?<span style="background-color:inherit;line-height:1.5;">我们都知道在创建表时必须指定列名、列类型等信息,这些显式指定的列就是标准的列,在查询时这些列能够被SELECT语句显示出来。除此之外,还有一种列类型,这些列并不存在于表定义中,如你通过DESC TBLNAME查看时看不到这些列的定义,但通过SELECT语句却可以查询这些列的内容,这种列就是Oracle提供的伪列(如SYSDATE之类系统函数不是伪列)。</span> </p> <p style="font-family:微软雅黑;font-size:14px;line-height:21px;white-space:normal;widows:auto;background-color:#FFFFFF;"> 伪列也并不是在任何查询时都适用,有些列只有特殊的查询语句中才能够显示,如上述表格中提供的6列就仅在使用Versions Query时才能够调用。除此之外还有一些比较常用的ROWNUM、LEVEL等。 </p>
您可能感兴趣的文档:

--结束END--

本文标题: ORACLE Flashback Query伪列

本文链接: https://www.lsjlt.com/news/46708.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-15
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-15
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-15
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-15
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-15
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-15
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-15
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-15
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作