用于提取过去3小时的插入记录的Oracle SQL查询

用于提取过去3小时的插入记录的Oracle SQL查询,oracle,Oracle,假设我有一个表A,它没有存储插入的新行的时间戳。是否存在任何查询以获取在指定时间范围内插入表A的行数。例如:获取昨天下午6点到9点之间的记录,或者获取最近4小时内插入的记录计数。您可以使用或\u ROWSCN伪列获取上次操作的系统更改编号(非插入)在您的表上-->将其转换为时间戳,然后在WHERE子句中使用它以获得所需的数据,如下所示: SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) LAST_OPERATION_TIME, T.* FROM YOUR_

假设我有一个表A,它没有存储插入的新行的时间戳。是否存在任何查询以获取在指定时间范围内插入表A的行数。例如:获取昨天下午6点到9点之间的记录,或者获取最近4小时内插入的记录计数。

您可以使用
或\u ROWSCN
伪列获取上次操作的系统更改编号(非插入)在您的表上-->将其转换为
时间戳
,然后在
WHERE
子句中使用它以获得所需的数据,如下所示:

SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) LAST_OPERATION_TIME,
       T.*
  FROM YOUR_TABLE T
 WHERE SCN_TO_TIMESTAMP(ORA_ROWSCN) BETWEEN START_TIMESTAM AND END_TIMESTAMP;

如果有搜索期间的存档日志,您可以从中了解有关
ORA_ROWSCN
的更多信息。

。您必须使用实用工具LogMiner

EXECUTE DBMS_LOGMNR.add_logfile(LOGFILENAME => '/oracle/app/oracle/product/11.2/admin/edcu/arc_redo_log/1_39306_769799469.dbf', OPTIONS => DBMS_LOGMNR.NEW); 
EXECUTE DBMS_LOGMNR.add_logfile(LOGFILENAME => '/oracle/app/oracle/product/11.2/admin/edcu/arc_redo_log/1_39307_769799469.dbf', OPTIONS => DBMS_LOGMNR.addfile); 
EXECUTE DBMS_LOGMNR.add_logfile(LOGFILENAME => '/oracle/app/oracle/product/11.2/admin/edcu/arc_redo_log/1_39308_769799469.dbf', OPTIONS => DBMS_LOGMNR.addfile); 
EXECUTE DBMS_LOGMNR.add_logfile(LOGFILENAME => '/oracle/app/oracle/product/11.2/admin/edcu/arc_redo_log/1_39309_769799469.dbf', OPTIONS => DBMS_LOGMNR.addfile); 
EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);

SELECT 
to_char(timestamp,'DD-MM-YYYY HH24:MI:SS'),
operation,username,  
os_username,
machine_name,
session_info,
sql_redo

 FROM v$logmnr_contents
where 
seg_owner='MANAGER' and  seg_name='TEST2'

02-07-2020 09:40:20 DDL     MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  create table test2 (p1 number);
02-07-2020 09:40:47 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1") values (HEXTORAW('c117'));
02-07-2020 09:40:53 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1") values (HEXTORAW('c119'));
02-07-2020 09:40:57 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1") values (HEXTORAW('c137'));
02-07-2020 09:41:01 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1") values (HEXTORAW('c20219'));
02-07-2020 09:41:45 DDL     MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  alter table test2 add (p2 varchar2(200));
02-07-2020 09:42:12 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c20219'),HEXTORAW('746573743220746573743120'));
02-07-2020 09:42:24 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
02-07-2020 09:46:24 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
02-07-2020 09:46:25 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
02-07-2020 09:46:26 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
02-07-2020 09:46:27 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
02-07-2020 09:46:28 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("COL 1","COL 2") values (HEXTORAW('c2021a'),HEXTORAW('746573743420746573743420'));
02-07-2020 09:54:37 DDL     MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN   comment on table test2 is  'test';
02-07-2020 10:16:36 DDL     MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  alter table test2 add  (p3 varchar2(100));
02-07-2020 10:17:07 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("P1","P2","P3") values ('125','test6','test4 ');
02-07-2020 10:17:08 INSERT  MANAGER DeminDV HOME\DEMIN   login_username=MANAGER client_info= OS_username=DeminDV Machine_name=HOME\DEMIN  insert into "MANAGER"."TEST2"("P1","P2","P3") values ('125','test6','test4 ');
'