国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

oracle SCN跟TIMESTAMP之間轉換

2024-08-29 13:55:40
字體:
來源:轉載
供稿:網友

Sql代碼
--獲取當前的SCN

復制代碼 代碼如下:


select dbms_flashback.get_system_change_number scn1,
timestamp_to_scn(sysdate) scn2 from dual;


--將SCN轉換成功時間

復制代碼 代碼如下:


select to_char(scn_to_timestamp(34607271), 'yyyy-mm-dd hh24:mi:ss') chr,
timestamp_to_scn(scn_to_timestamp(34607271)) dt
from dual;



作為對于閃回操作(flashback)的一個增強,Oracle10g提供了函數對于SCN和時間戳進行相互轉換。

首先通過dbms_flashback.get_system_change_number 可以獲得系統當前的SCN值:

SQL> col scn for 9999999999999
SQL> select dbms_flashback.get_system_change_number scn from dual;
SCN
--------------
8908390522972

通過scn_to_timestamp函數可以將SCN轉換為時間戳:


SQL> select scn_to_timestamp(8908390522972) scn from dual;
SCN
---------------------------------------------------------------------------
05-JAN-07 10.56.30.000000000 AM

再通過timestamp_to_scn可以將時間戳轉換為SCN:

SQL> select timestamp_to_scn(scn_to_timestamp(8908390522972)) scn from dual;
SCN
--------------
8908390522972

通過這兩個函數,最終Oracle將SCN和時間的關系建立起來,在Oracle10g之前,是沒有辦法通過函數轉換得到SCN和時間的對應關系的,一般可以通過logmnr分析日志獲得。

但是這種轉換要依賴于數據庫內部的數據記錄,對于久遠的SCN則不能轉換,請看以下舉例:


SQL> select min(FIRST_CHANGE#) scn,max(FIRST_CHANGE#) scn from v$archived_log;
SCN SCN
------------------ ------------------
8907349093953 8908393582271

SQL>

復制代碼 代碼如下:


select scn_to_timestamp(8907349093953) scn from dual;
select scn_to_timestamp(8907349093953) scn from dual
*
ERROR at line 1:
ORA-08181: specified number is not a valid system change number
ORA-06512: at "SYS.SCN_TO_TIMESTAMP", line 1
ORA-06512: at line 1



SQL> select scn_to_timestamp(8908393582271) scn from dual;

SCN
---------------------------------------------------------------------------
05-JAN-07 11.45.50.000000000 AM

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高雄县| 新沂市| 贵定县| 修武县| 广南县| 上蔡县| 库车县| 虞城县| 安宁市| 察哈| 泰来县| 焦作市| 涿鹿县| 通渭县| 通河县| 琼中| 安吉县| 大方县| 克东县| 高陵县| 饶平县| 诸暨市| 田林县| 庆元县| 新蔡县| 犍为县| 湘西| 新平| 连南| 黄大仙区| 建宁县| 鞍山市| 辽宁省| 仁布县| 安丘市| 西城区| 法库县| 宝清县| 敖汉旗| 伊金霍洛旗| 瑞丽市|