用于提取过去3小时的插入记录的Oracle SQL查询
假设我有一个表A,它没有存储插入的新行的时间戳。是否存在任何查询以获取在指定时间范围内插入表A的行数。例如:获取昨天下午6点到9点之间的记录,或者获取最近4小时内插入的记录计数。您可以使用用于提取过去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_
或\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 ');
'