ORACLE伪列

一、ORA_ROWSCN   (10g or later) 。

返回行(BLOCK)的SCN号,取到SCN后可以通过SCN_TO_TIMESTAMP转换成时间。表示此行最后更新时间.

select to_char(scn_to_timestamp(ora_rowscn), 'YYYY-MM-DD HH24:MI:SS'),
       scn_to_timestamp(ora_rowscn),
       t.*
  from emp t;

注:如果CREATE TABLE 时没有加rowdependencies关键字,那么SCN可能不会精确到行上,而是指ROW所在的BLOCK。

create table EMP_BAK
(
  empno    NUMBER(4),
  ename    VARCHAR2(10),
  job      VARCHAR2(9),
  mgr      NUMBER(4),
  hiredate DATE,
  sal      NUMBER(7,2),
  comm     NUMBER(7,2),
  deptno   NUMBER(2)
)
rowdependencies
;
 

 二、ROWID (8i or later)

Length:18

AAAL+ZAAEAAAAAdAAB

由数据对象编号(6)+文件编号(3)+块编号(6)+行编号(3)

工具包:dbms_rowid

工具函数:rowidtochar,chartorowid

猜你喜欢

转载自yhef.iteye.com/blog/1403311