【云原生进阶之数据库技术】第二章-Oracle-原理-4.6.3.6-闪回查询技术

本文详细介绍了Oracle数据库中的闪回查询技术,包括闪回时间点查询和闪回版本查询。通过具体示例展示了如何在不同场景下使用这两种查询方式,帮助读者理解并掌握Oracle闪回查询的使用方法。
摘要由CSDN通过智能技术生成

1 闪回查询

        Oracle提供了四种可供使用的闪回技术(闪回查询,闪回删除,闪回归档,闪回数据库),每种都有不同的底层体系结构支撑,但其实这四种不同的闪回技术部分功能是有重叠的,使用时也需要根据实际场景合理选择最合适的闪回功能。

        其中,以表为单位查询其过去的数据称为闪回查询,闪回查询能够在undo段内搜索“旧”数据,数据库能够保留多少undo数据决定了闪回查询的时间窗口的大小。

闪回查询分为两种:

  1. 闪回时间点查询:在过去的一个时间点上的查询(as of子句与dbms_flashback包)
  2. 闪回版本查询:在过去的一段时间范围内的查询(versions between子句)

1.1 闪回时间点查询

功能描述:可以查询过去某个时间段的数据库状态。

工作原理:Oracle 会提取所需要的撤销数据(前提是撤销是可用的,即撤销数据还没被覆盖)进行回滚,但这种回滚是临时的,仅针对当前session可见。

SQL> select * from dept as of timestamp to_timestamp('2016-09-10 11:00:00','yyyy-mm-dd hh24:mi:ss');

1.1.1 闪回查询并插入表中

insert into 表名 select * from 表名 as of timestamp-分钟数/使用SCN;

1.1.2 闪回到新建的表中

create table 表名 as select 表名 as as of timestamp-分钟数/使用SCN;

1.1.3 闪回查询

select * from tableName as of timestamp to_timestamp('2009-01-25 12:00:00', 'yyyy-mm-dd hh24:mi:ss')

1.1.4 查看当前系统时间

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from dual; 
select to_char(sysdate,'yyyy-MM-dd HH24:mm:ss') from dual; 
select to_char(sysdate,'yy-mm-dd hh24:mi:ss') from dual 
# 12小时制 
select to_char(sysdate,'yy-mm-d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江中散人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值