The Dragon Scroll

Be just and fear not.

10gがもたらす福音(8)〜フラッシュバックの新機能(1)。

フラッシュバック機能について。

  1. フラッシュバック問い合わせ
  2. フラッシュバックバージョン問い合わせ(新機能)
  3. フラッシュバックトランザクション問い合わせ(新機能)
  4. フラッシュバックテーブル(新機能)
  5. フラッシュバックドロップ(新機能)
  6. フラッシュバックデータベース(新機能)

フラッシュバックバージョン問い合わせ

指定した2つのSCNまたは、時刻の間に行われたデータの
変更履歴を確認することができる。


SCNを使用した問い合わせ
select *
from hoge
versions between scn 最小値 and 最大値;


時刻を使用した問い合わせ
select *
from hoge
versions between timestamp 最小値 and 最大値;


最小値…MINVALUE
最大値…MAXVALUE
おのおの定数を用いることができる。
その最小値、最大値間に発生したバージョン(変更履歴)を
確認することができる。


問い合わせで使用可能な擬似列
VERSIONS_STARTSCN
 バージョン範囲内の下限のSCN
VERSIONS_ENDSCN
 バージョン範囲内の上限のSCN
VERSIONS_STARTTIME
 バージョン範囲内の下限の時刻
VERSIONS_ENDTIME
 バージョン範囲内の上限の時刻
VERSIONS_XID
 その行履歴を生成したときのトランザクションID
 ここで採取したIDを後述のフラッシュバックトランザクション
 問い合わせで使用することができる。
VERSIONS_OPERATION
 その行履歴を生成したときの操作
 I/INSERT U/UPDATE D/DELETE

フラッシュバックトランザクション問い合わせ

FLASHBACK_TRANSACTION_QUERYビューに対して、トランザクションID
を引き当てることで、その変更を元に戻すSQL文を確認することが
できる。


FLASHBACK_TRANSACTION_QUERYビューのカラム
OPERATION
 変更を行ったときの操作(UPDATE/DELETE/INSERT)
UNDO_SQL
 変更を取り消すためのSQL
LOGON_USER
 変更を実施したOracleユーザ
TABLE_NAME
 変更が行われたテーブル
XID
 トランザクションID
UNDO_CHANGE#
 トランザクション内の処理順序番号
START_SCN
 変更を開始した時のSCN
COMMIT_SCN
 変更を確定した時のSCN