oracle的闪回操作及一些相关知识点

1. 背景

在查询oracle数据表最近一次更新时间时查了些资料,做个总结

2. 闪回操作

alter table test_table enable row  movement ;
# 闪回
flashback table test_table to timestamp to_timestamp('2021-11-17 18:00:00','yyyy-mm-dd hh24:mi:ss');

3. 引用

关于获取oracle中数据变更的时间戳的探索

4. 拓展

Oracle存在rownum, rowid, ora_rowscn这样的伪列

select rownum, rowid, ora_rowscn from  test_table ;   

其中Oracle中scn有最小值

# 查询当前最小scn  -- 五天前
select min(scn) from sys.smon_scn_time;

# scn转日期 , 小于min(scn)会报错
select to_char(scn_to_timestamp(25119557960751), 'YYYY-MM-DD HH24:MI:SS') FROM DUAL 

# 日期转scn , 小于min(scn)对应的timestamp会报错
select timestamp_to_scn(to_date('2022-01-21 06:58:34','yyyy-mm-dd hh24:mi:ss')) from dual ;

-- 查询所有快照时刻 
select to_char(scn_to_timestamp(scn), 'YYYY-MM-DD HH24:MI:SS') from sys.smon_scn_time order by scn desc;

# 查询数据表某一时刻的快照 , 小于min(scn)对应的timestamp会报错
select * from test_table as of timestamp to_date('2022-01-21 11:19','yyyy-mm-dd hh24:mi');
select * from test_table  as of timestamp to_date('2022-04-12 13:40:23', 'yyyy-mm-dd hh24:mi:ss');

posted @   钱塘江畔  阅读(288)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示