- 相關(guān)推薦
怎么用Oracle10g新的行時間戳捕捉變化
數(shù)據(jù)倉庫經(jīng)常通過多種數(shù)據(jù)源系統(tǒng)填充,而每種系統(tǒng)都運(yùn)行有自己的應(yīng)用程序。所以為了能給數(shù)據(jù)倉庫只提供新數(shù)據(jù),確定哪些是最近更新的行是一件非常復(fù)雜的事。在處理一些其架構(gòu)中不包括“上次更新時間”列的過時軟件時,這尤其是一個難題。企業(yè)自然不情愿僅僅為了追蹤變化而通過修改工作代碼來添加列。
在Oracle 10g中,在行最后一次被更新的時候,每一行都有一個新的被稱作ORA_ROWSCN的偽列。 ORA_ROWSCN 提供了一個“保守上邊界(conservative upper bound)”系統(tǒng)改變數(shù),用來記錄最近被修改的行的事務(wù)。這就意味著系統(tǒng)改變數(shù)(SCN)是一個估計值,因為在Oracle中系統(tǒng)改變數(shù)只能默認(rèn)在模塊級被追蹤。
例如在列表A中,ORA_ROWSCN 在處理一個小表格時被選中,一行被更新后,ORA_ROWSCN 再次被選中。
|
即使只有一行被改動了,剩下的也會顯示一個新的系統(tǒng)改變數(shù)(SCN)。(更準(zhǔn)確地說,你可以在一個表第一次被創(chuàng)建時,使用行級系統(tǒng)改變數(shù)追蹤。但遺憾的是,你不能夠更改該表格,以便在以后加入該特性。)所以如果被更新的塊數(shù)比表中的塊數(shù)要少,這也可以成為一種發(fā)現(xiàn)變化的方法,而不用涉及太多額外的行。
如果你需要與事務(wù)有關(guān)的日期和時間應(yīng)該怎么辦呢?SCN_TO_TIMESTAMP函數(shù)可以將ORA_ROWSCN 轉(zhuǎn)換成為一個時間戳,利用它你可以進(jìn)行查詢,或者把它用作一個WHERE 子句的謂語。但是,這個時間戳仍然是一個估計值。
ORA_ROWSCN 也是將系統(tǒng)改變值(SCN)用作閃回查詢捷徑(盡管RA_ROWSCN 本身在閃回中并不能被選中)的一種很方便的方法,不然就要用閃回形式查詢,選中VERSIONS_STARTSCN 和VERSIONS_ENDSCN 偽列。
列表B是一次閃回查詢,它用一個小于當(dāng)前值的系統(tǒng)改變值來獲得一個數(shù)據(jù)行原來的值。我們發(fā)現(xiàn)King的工資回到了5000,而ORA_ROWSCN的值則是最初的系統(tǒng)改變值。
|
【怎么用Oracle10g新的行時間戳捕捉變化】相關(guān)文章:
CAD的對象捕捉選項怎么設(shè)置10-16
CAD對象捕捉不到點(diǎn)怎么處理10-19
最新整理gre考試時間安排必戳!08-03
redhatlinux下安裝oracle10g的教程09-30
新SAT文章題型的重大變化10-03
眉筆怎么用08-06
面膜怎么用09-12