フラッシュバッククエリー

Oracle9iR2以降から使える技で紹介。

[TIMESTAMP型]の利用。

これは便利です。Oracleの設定にもよりますが、消した直後とかであれば、大抵これで解決できます。
無論、COMMITした後とかのトランザクション後でも問題ありません。

例えば、T_TESTってテーブルがあったとして、
間違って[TRUNCATE TABLE T_TEST]を実行してしまったとする。

まぁ、普通ならサヨウナラ~って感じですが、
以下のSQLで指定した時間のテーブルをフラッシュバックして操作することができます。
使い方は、

[SELECT * FROM T_TEST AS OF TIMESTAMP TO_TIMESTAMP('200609','YYYYMM')]
という感じです(指定する時間は、自分が使いたい過去の時刻を指定する)。

もし、それを復活したければ、
INSERT INTO SELECT ~ あたりで戻せる。
どこまで過去に戻せるかは、Oracleの設定や、キャッシュに溜まっているログの量にもよるので、これを信用して作業するのは危険ですが(^^;





Oracle9iR1の場合は、素直にDBMS_FLASHBACKを使う事になります。
これは結構面倒なんですよね。
[PR]
by tumugu_32 | 2006-09-12 14:43 | 仕事


徒然なるままに夜明


by tumugu_32

プロフィールを見る
画像一覧

フォロー中のブログ

underground-...
R34 GT-VなBlog
馬鹿と変態は紙一重(馬鹿...

カテゴリ

全体
ニュースとか
面白いもの
戯れ言
謎w
自作ソフト
欲しいかも
旅行
ネタ
食べ物ネタ
自転車
仕事
映画
写真
未分類

その他なリンク

その他のジャンル

ファン

記事ランキング

ブログジャンル

画像一覧

S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30