日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ORACLE查询表最近更改的数据

發(fā)布時(shí)間:2023/12/18 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ORACLE查询表最近更改的数据 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

,今天開發(fā)人員問(wèn)我如何快速并方便的查出一張表最近被更改的記錄,這個(gè)需求很簡(jiǎn)單,由于是查最近被更改的數(shù)據(jù),查回滾段就可以,下面是我做的小實(shí)驗(yàn)。

SQL> create table test(id number,name varchar2(10),gender varchar2(5)); 表已創(chuàng)建。 SQL> insert into test values(1,'宋春風(fēng)','男'); 已創(chuàng)建 1 行。 SQL> insert into test values(2,'葉民','男'); 已創(chuàng)建 1 行。 SQL> insert into test values(3,'白冰','男'); 已創(chuàng)建 1 行。 SQL> insert into test values(4,'方巍森','男'); 已創(chuàng)建 1 行。 SQL> insert into test values(5,'孫書禎','男'); 已創(chuàng)建 1 行。 SQL> insert into test values(6,'史波','男'); 已創(chuàng)建 1 行。 SQL> commit; 提交完成。

利用下面的SQL就可以查處最近更改的數(shù)據(jù)。

SQL> SELECT ID,NAME,VERSIONS_STARTTIME,VERSIONS_ENDTIME,VERSIONS_OPERATION FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE WHERE VERSIONS_STARTTIME IS NOT NULL ORDER BY VERSIONS_STARTTIME DESC;ID NAME GENDE VERSIONS_STARTTIME VERSIONS_ENDTIME V ---------- ------ ----- ------------------------- ------------------------- -6 史波 男 30-11月-11 04.02.28 下午 I5 孫書禎 男 30-11月-11 04.02.28 下午 I1 宋春風(fēng) 男 30-11月-11 04.02.28 下午 I3 白冰 男 30-11月-11 04.02.28 下午 I2 葉民 男 30-11月-11 04.02.28 下午 I4 方巍森 男 30-11月-11 04.02.28 下午 I 已選擇6行。

修改幾條數(shù)據(jù)和接下來(lái)的查詢做對(duì)比。

SQL> UPDATE TEST SET GENDER='女' WHERE NAME='孫書禎'; 已更新 1 行。 SQL> COMMIT; 提交完成。 SQL> UPDATE TEST SET GENDER='女' WHERE NAME='史波'; 已更新 1 行。 SQL> COMMIT; 提交完成。

再次查詢,被修改的數(shù)據(jù)就可以看到被修改和修改前的數(shù)據(jù)。

SQL> SELECT ID,NAME,GENDER,VERSIONS_STARTTIME,VERSIONS_ENDTIME, VERSIONS_OPERATION FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE WHERE VERSIONS_STARTTIME IS NOT NULL ORDER BY VERSIONS_STARTTIME DESC;ID NAME GENDE VERSIONS_STARTTIME VERSIONS_ENDTIME V ---------- ------ ----- ------------------------- ------------------------- -6 史波 女 30-11月-11 04.15.07 下午 U5 孫書禎 女 30-11月-11 04.14.31 下午 U4 方巍森 男 30-11月-11 04.02.28 下午 I3 白冰 男 30-11月-11 04.02.28 下午 I2 葉民 男 30-11月-11 04.02.28 下午 I1 宋春風(fēng) 男 30-11月-11 04.02.28 下午 I6 史波 男 30-11月-11 04.02.28 下午 30-11月-11 04.15.07 下午 I5 孫書禎 男 30-11月-11 04.02.28 下午 30-11月-11 04.14.31 下午 I 已選擇8行。

再修改幾條數(shù)據(jù)后后查詢。

SQL> delete from test WHERE NAME='史波'; 已刪除 1 行。 SQL> delete from test WHERE NAME='孫書禎'; 已刪除 1 行。 SQL> commit; 提交完成。 SQL> SELECT ID,NAME,GENDER,VERSIONS_STARTTIME,VERSIONS_ENDTIME, VERSIONS_OPERATION FROM TEST VERSIONS BETWEEN TIMESTAMP MINVALUE AND MAXVALUE WHERE VERSIONS_STARTTIME IS NOT NULL ORDER BY VERSIONS_STARTTIME DESC;ID NAME GENDE VERSIONS_STARTTIME VERSIONS_ENDTIME V ---------- ------ ----- ------------------------- ------------------------- -5 孫書禎 男 30-11月-11 04.26.02 下午 D6 史波 男 30-11月-11 04.26.02 下午 D6 史波 女 30-11月-11 04.15.07 下午 30-11月-11 04.19.08 下午 U5 孫書禎 女 30-11月-11 04.14.31 下午 30-11月-11 04.19.08 下午 U2 葉民 男 30-11月-11 04.02.28 下午 I3 白冰 男 30-11月-11 04.02.28 下午 I4 方巍森 男 30-11月-11 04.02.28 下午 I5 孫書禎 男 30-11月-11 04.02.28 下午 30-11月-11 04.14.31 下午 I1 宋春風(fēng) 男 30-11月-11 04.02.28 下午 I6 史波 男 30-11月-11 04.02.28 下午 30-11月-11 04.15.07 下午 I 已選擇10行。

通過(guò)以上小實(shí)驗(yàn)可以看出,VERSIONS_STARTTIME是數(shù)據(jù)被修改的起始時(shí)間,VERSIONS_ENDTIME是數(shù)據(jù)被修改后新數(shù)據(jù)的有效時(shí)間,也就是VERSIONS_STARTTIME和VERSIONS_ENDTIME時(shí)間段內(nèi),這條數(shù)據(jù)再?zèng)]被修改過(guò),如果VERSIONS_ENDTIME為空,就說(shuō)明這天記錄從VERSIONS_STARTTIME時(shí)間起再?zèng)]被修改過(guò)。VERSIONS_OPERATION是修改狀態(tài),I代表INSERT,U代表UPDATE,D代表DELETE。此時(shí)如果想回滾INSERT的數(shù)據(jù),只需要DELETE反向操作即可,如果想回滾UPDATE操作,將數(shù)據(jù)反向UPDATE回去即可,比如本實(shí)驗(yàn)已經(jīng)可以看到進(jìn)行UPDATE操作的是NAME為史波和孫書禎的兩條記錄,而且也可以看到進(jìn)行UPDATE之前的數(shù)據(jù)他們的性別是男,所以只需要在做個(gè)反向UPDATE,將性別該為男即可實(shí)現(xiàn)回退,如果要回滾DELETE操作,同樣做個(gè)INSERT操作,將刪除的數(shù)據(jù)在插回去即可。
注:此SQL只能查詢到回滾段內(nèi)的信息,超出回滾段范圍這個(gè)SQL就無(wú)能為力了,需要借助LOGMGR工具挖掘日志了(詳見http://www.dbdream.org/?p=149)。

轉(zhuǎn)載于:https://www.cnblogs.com/wzmenjoy/archive/2012/01/17/2367636.html

總結(jié)

以上是生活随笔為你收集整理的ORACLE查询表最近更改的数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。