2009/03/12

[oracle]フラッシュバック問い合わせからinsert文発行

最近、はまっているのが、フラッシュバック問い合わせからinsert文を発行する方法

oracle10gから可能になったのですが、開発でテストを行っていると、次第にデータがぐにゃぐにゃになってしまうのがしばしば。

そこで、たいていの場合、エクスポート、インポートをしてデータをある時点に戻すのですが、フラッシュバック問い合わせからinsertを走らせてデータを元に戻す方法もあります。

例えば、昨日の時点のデータに戻したいなーと思った時に、ソースはこんな感じになる。

insert into hoge
select *
from hoge
as of timestamp to_timestamp('20090311','yyyymmddhimmss')
;
commit;

こうすることによって、わざわざ、dmpファイルをとらなくても、データを戻すことができるので便利だなーと。

ただ、注意点があって、オブジェクト自体が変更されてしまうと、データを元に戻すことができないので、その点は注意かなと。
(フラッシュバック問い合わせができない場合に、ついては、こちらを参照)

0 コメント:

コメントを投稿