这个函数将scn作为参数,返回scn相对应的时间戳,返回的是timestamp类型的数据。

下面的例子返回了行最后一次更新对应的时间。

SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) FROM employees  WHERE employee_id = 188;

下面是使用scn_to_timestamp的一个例子

SELECT salary FROM employees WHERE employee_id = 188;
    SALARY
----------
      3800

UPDATE employees SET salary = salary*10 WHERE employee_id = 188;
COMMIT;

SELECT salary FROM employees WHERE employee_id = 188;
    SALARY
----------
     38000

SELECT SCN_TO_TIMESTAMP(ORA_ROWSCN) FROM employees
   WHERE employee_id = 188;
SCN_TO_TIMESTAMP(ORA_ROWSCN)
---------------------------------------------------------------------------
28-AUG-03 01.58.01.000000000 PM

FLASHBACK TABLE employees TO TIMESTAMP
   TO_TIMESTAMP('28-AUG-03 01.00.00.000000000 PM');

SELECT salary FROM employees WHERE employee_id = 188;  
    SALARY
----------
      3800


ora_rowscn返回行最近一次修改的scn.

SQL> create table t (id int);

表已创建。

SQL> insert into t values(1);

已创建 1 行。

SQL> insert into t values(2);

已创建 1 行。

SQL> commit;

提交完成。

SQL> select ora_rowscn from t;

ORA_ROWSCN
----------
   2699730
   2699730

SQL> update t set id=id+2;

已更新2行。
SQL> commit;

提交完成。

SQL> select ora_rowscn from t;

ORA_ROWSCN
----------
   2699746
   2699746

SQL>