用Oracle 10g新的行時間戳捕捉變化_第1頁
用Oracle 10g新的行時間戳捕捉變化_第2頁
用Oracle 10g新的行時間戳捕捉變化_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據倉庫經常通過多種數據源系統填充,而每種系統都運行有自己的應用程序。所以為了能給數據倉庫只提供新數據,確定哪些是最近更新的行是一件非常復雜的事。在處理一些 其架構中不包括“上次更新時間”列的過時軟件時,這尤其是一個難題。企業自然不情愿僅僅為了追蹤變化而通過修改工作代碼來添加列。在Oracle 10g中,在行最后一次被更新的時候,每一行都有一個新的被稱作ORA_ROWSCN的偽列。ORA_ROWSCN提供了一個“保守上邊界(conservative upper bound)”系統改 變數,用來記錄最近被修改的行的事務。這就意味著系統改變數(SCN)是一個估計值,因為在Oracle中系統改變數只

2、能默認在模塊級被追蹤。例如在列表A中,ORA_ROWSCN在處理一個小表格時被選中,一行被更新后,ORA_ROWSCN再次被選中。列表ASQLSQL SELECT ora_rowscn, ename, sal 2 FROM emp;ORAROWSCN ENAME SAL529426SMITH 800529426ALLEN 1600529426WARD 1250529426JONES 2975529426MARTIN 1250529426BLAKE 2850529426CLARK 2450529426SCOTT 3000529426KING 5000529426TURNER 1500529426

3、ADAMS 1100ORAROWSCN ENAMESAL529426JAMES 950529426FORD 3000529426MILLER 130014 rows selected.SQL UPDATE empSETsal = 6000WHERE ename = KING;row updated.SQL commit;Commit complete.SQL SELECT ora_rowscn, ename, salFROM emp;ORAROWSCN ENAME SAL653331 SMITH 800653331 ALLEN 1600653331 WARD 1250653331 JONES

4、2975653331 MARTIN 1250653331 BLAKE 2850653331 CLARK 2450653331 SCOTT 3000653331 KING 6000653331 TURNER 1500653331 ADAMS 1100ORAROWSCN ENAME SAL653331 JAMES 950653331 FORD 3000653331 MILLER 130014 rows selected.SQL SELECT SCN_TO_TIMESTAMP(653331) FROM dual;SCN_TO_TIMESTAMP(653331)20-JUN-06 11.03.59.0

5、00000000 PM即使只有一行被改動了,剩下的也會顯示一個新的系統改變數(SCN)。(更準確地說,你可以在一個表第一次被創建時,使用行級系統改變數追蹤。但遺憾的是,你不能夠更改該 表格,以便在以后加入該特性。)所以如果被更新的塊數比表中的塊數要少,這也可以成為一種發現變化的方法,而不用涉及太多額外的行。如果你需要與事務有關的日期和時間應該怎么辦呢? SCN_TO_TIMESTAMP函數可以將ORA_ROWSCN轉換成為一個時間戳,利用它你可以進行查詢,或者把它用作一個WHERE子句的謂語。但是,這個時間戳仍然是一個估計值。ORA_ROWSCN也是將系統改變值(SCN)用作閃回查詢捷徑(盡管RA_ROWSCN本身在閃回中并不能被選中)的一種很方便的方法,不然就要用閃回形式查詢,選中VERSIONS_STARTSCN和 VERSIONS_ENDSCN 偽列。列表B是一次閃回查詢,它用一個小于當前值的系統改變值來獲得一個數據行原來的值。我們發現King的工資回到了 5000,而ORA_ROWSCN的值則是最初的系統改變值。列表BSQL SELECT ora_rowscn, ename, salFROMemp

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論