システム変更番号

Oracle は整合性を維持するためにコミット単位で SCN(System Change Numbers)
という順序をふっている。これは内部的なタイムスタンプであって、
システム変更番号とも呼ばれる。

OracleのSCNを取得

動的パフォーマンスビュー v$database の current_scn を参照すると、
SCN の値を取得できる。

SQL> select current_scn from v$database;

CURRENT_SCN
-----------
    3392846

SCNの最大値

Oracle SCN の最大値は、なんと「281兆」という途方もない数値だ。
「281,474,976,710,656」。まず、MAX 値になる心配はないだろう。

SCN のタイムスタンプを確認

SCN_TO_TIMESTAMP 関数を使用することで、取得した SCN 時点の
タイムスタンプを出力できる。

SQL> select current_scn, scn_to_timestamp(current_scn) from v$database;

CURRENT_SCN SCN_TO_TIMESTAMP(CURRENT_SCN)
----------- -----------------------------
    3392860 18-12-30 22:26:13.000000000

関連記事