这个函数将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>