Oracleでscnをタイムスタンプに変換する方法
Oracleには、scnをtimestampに、timestampをscnに変換する機能が組み込まれています。 SCN_TO_TIMESTAMPは、システム変更番号(SCN)に評価される数値を引数として取り、そのSCNに関連付けられたおおよそのタイムスタンプを返します。 この関数は、SCNに関連付けられているタイムスタンプを知りたいときに便利です。 これを行うために、OracleはSCN_TO_TIMESTAMPとTIMESTAMP_TO_SCNという2つのパッケージを提供しています。
- SCNは、特にRMANリカバリを実行する場合に非常に重要です。
- Archivelogギャップの解決と物理スタンバイサーバーの回復。
- FLASHBACK_SCNを使用してデータポンプエクスポートパラメータファイルで使用すると、その時点でのデータベースの一貫性のあるコピーを確保できます。
SCNをTIMESTAMPに変換し、TIMESTAMPをSCNに変換する方法
以下のクエリを使用してデータベースの現在のscnを確認します。
SQL>select current_scn from v$database;
current_scn
--------------
4426538972
現在のscn番号からtimestamp値を取得します。
SQL> select scn_to_timestamp(4426538972) as timestamp from dual;
timestamp
-------------------------------
23-SEP-18 03.22.42.000000000 PM
タイムスタンプからscn番号を取得します。
SQL> select timestamp_to_scn(to_timestamp('23/09/2018 15:22:44','DD/MM/YYYY HH24:MI:SS')) as scn from dual;
SCN
----------
4426538972