佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > oracle SCN跟TIMESTAMP之間轉(zhuǎn)換

oracle SCN跟TIMESTAMP之間轉(zhuǎn)換

熱門標(biāo)簽:鐵路電話系統(tǒng) 地方門戶網(wǎng)站 AI電銷 服務(wù)外包 呼叫中心市場需求 Linux服務(wù)器 百度競價排名 網(wǎng)站排名優(yōu)化

Sql代碼
--獲取當(dāng)前的SCN

復(fù)制代碼 代碼如下:

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

--將SCN轉(zhuǎn)換成功時間
復(fù)制代碼 代碼如下:

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)的一個增強(qiáng),Oracle10g提供了函數(shù)對于SCN和時間戳進(jìn)行相互轉(zhuǎn)換。

首先通過dbms_flashback.get_system_change_number 可以獲得系統(tǒng)當(dāng)前的SCN值:

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

通過scn_to_timestamp函數(shù)可以將SCN轉(zhuǎn)換為時間戳:


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

再通過timestamp_to_scn可以將時間戳轉(zhuǎn)換為SCN:

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

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

但是這種轉(zhuǎn)換要依賴于數(shù)據(jù)庫內(nèi)部的數(shù)據(jù)記錄,對于久遠(yuǎn)的SCN則不能轉(zhuǎn)換,請看以下舉例:


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

SQL>
復(fù)制代碼 代碼如下:

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

您可能感興趣的文章:
  • 淺談oracle SCN機(jī)制
  • Oracle SCN與檢查點(diǎn)詳解

標(biāo)簽:崇左 衡水 蘭州 仙桃 黃山 湖南 銅川 湘潭

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《oracle SCN跟TIMESTAMP之間轉(zhuǎn)換》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    名山县| 桐乡市| 平谷区| 小金县| 都匀市| 绵阳市| 伽师县| 池州市| 抚松县| 弥渡县| 常德市| 东光县| 丁青县| 鄂托克前旗| 保亭| 曲水县| 久治县| 富平县| 门头沟区| 安仁县| 梅州市| 平邑县| 澄江县| 大渡口区| 西乡县| 永福县| 绥中县| 宝坻区| 梁河县| 峡江县| 安平县| 眉山市| 吉安县| 乐东| 辰溪县| 五大连池市| 苗栗市| 呼伦贝尔市| 资源县| 巴中市| 三台县|