暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 如何捕获最旧的行及其创建日期

ASKTOM 2020-01-09
264

问题描述

我正在尝试整理一份报告,该报告将显示可能被删除的旧数据。

您能否让我知道如何捕获所有非系统表中的行 (以及行) 的最旧创建日期?

我们正在运行Oracle版本12.2.0.1。

谢谢

专家解答

最简单的方法之一是有一个默认为sysdate/systimestamp的插入日期列:

create table t (
  c1 int,
  ins_ts timestamp 
    default systimestamp
);

insert into t values ( 1, default );
exec dbms_lock.sleep ( 7 );
insert into t values ( 2, default );

select * from t;

C1    INS_TS                           
    1 09-JAN-2020 10.43.08.806278000    
    2 09-JAN-2020 10.43.16.469880000   


如果您试图发现现有表上没有此内容的最旧行...你可能不走运。

ORA_ROWSCN让你接近,但有很多问题,这使得它不可靠:

https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:9532351800346655576
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:517105100346104196
文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论