Oracle 10g flashback フラッシュバッククエリー

Oracle において Oracel10g フラッシュバッククエリー に関して示す。

Oracle10g フラッシュバックの種類

参照系

  1. フラッシュバッククエリー http://www.bishounen.sakura.ne.jp/rails/my_knowledge/show/386
  2. 行履歴フラッシュバック http://www.bishounen.sakura.ne.jp/rails/my_knowledge/show/387
  3. トランザクション履歴フラッシュバック http://www.bishounen.sakura.ne.jp/rails/my_knowledge/show/388

更新系

  1. フラッシュバックデータベース http://www.bishounen.sakura.ne.jp/rails/my_knowledge/show/389
  2. フラッシュバックテーブル http://www.bishounen.sakura.ne.jp/rails/my_knowledge/show/390
  3. フラッシュバックドロップ http://www.bishounen.sakura.ne.jp/rails/my_knowledge/show/391

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

「EXECUTE ON dbms_flashback」は、Oracel10gでは権限を付与しなくても実行できる。

1.参照

    SQL> SELECT *, ORA_ROWSCN FROM DEPT;

2.更新

    SQL> DELETE FROM DEPT;
    SQL> COMMIT;

3.現在時刻の確認

    SQL> SELECT SYSTEMSTAMP FROM DUAL;

4.フラッシュバッククエリーを発行

    SQL> SELECT *, ORA_ROWSCN FROM DEPT AS OF TIMESTAMP
         TO_TIMESTAMP('06-05-18 16-:09:00','YY-MM-DD HH24:MI:SS');
    SQL> SELECT *, ORA_ROWSCN FROM DEPT AS OF TIMESTAMP
         TO_TIMESTAMP SYSTIMESTAMP - INTERVAL '10' MINUTE;
    SQL> SELECT *, ORA_ROWSCN FROM DEPT AS OF SCN 201369;

※Oracel9iとの比較

  Oracle9iでは、カーソルを使用しないと過去のデータをテーブルにINSERT
  できなかったが、Oracel10gでは可能。
  SQL> CREATE TABLE DEPT_BK AS SELECT * FROM DEPT;
  SQL> INSERT INTO DEPT_BK SELECT * FROM DEPT AS OF SCN 201369;

※Oracel10g

  Oracle10gにおいても、表構造が変更した場合にはフラッシュバック
  クエリーを実行することはできない。

ご訪問頂き有難う御座います。 当サイトを効率良く使うためにまずは FrontPage を見て下さい。 検索方法、一覧表示などの各情報を纏めています。
当サイトの説明 → Frontpage