• ベストアンサー

Oracle10g DROPした1パーティションもフラッシュバックできるか?

Oracle10gから DROP TABLE で削除された表は、物理的には削除されず表の名前が変更され、表および関連するオブジェクトがリサイクル・ビンに配置されるようになりました。パーティション表も同様ということは理解できました。さてここで疑問に思ったのが ALTER TABLE DROP PARTITION で削除されたパーティション表内の1パーティションもリサイクル・ビンに配置されフラッシュバックできるのでしょうか?

  • Oracle
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 3rd_001
  • ベストアンサー率66% (115/174)
回答No.1

マニュアルを参照しましょう。 「SQL リファレンス10g リリース2(10.2)」 > 表のフラッシュバックの制限事項: > この文には、次の制限事項があります。 > 表のフラッシュバック操作は、クラスタ内の表、マテリアライズド・ビュー、 > アドバンスト・キューイング(AQ)表、静的データ・ディクショナリ表、 > システム表、リモート表、オブジェクト表、ネストした表、 > 表の個々のパーティションまたはサブパーティションには無効です。 つまり無理です。

yykasu
質問者

お礼

3rd_001様 ご丁寧にマニュアルを調べて下さり、感謝いたします。 実は引用して下さったマニュアルの記載を私も見たのですが物理設計を行っている関係で「フラッシュバックできないのだから、当然リサイクル・ビンにも配置されいよね?」という確証も欲しかったのです。 幸い検証環境が手に入ったので早速試してみました。 結果として ALTER TABLE DROP PARTITION で削除されたパーティション表内の1パーティションはリサイクル・ビンに配置されませんでした。 ありがとうございました。

関連するQ&A

  • HiRDBのPURGEとDROPの違い

    HiRDB初心者です。 HiRDBのSQLで「PURGE TABLE」と「DROP TABLE」っていうのがありますが、 この2つの違いは何でしょうか? HiRDBのオンラインマニュアル(HTML)を読むと PURGE TABLE ⇒ 実表中の行をすべて削除します。 DROP TABLE ⇒ 表を削除します。 と書いてありますが、いまいち違いがわかりません。 私的には「すべての行を削除=表を削除」という認識なのですが、 どう違うのかご教授ください。 よろしくお願いします。

  • Oracle テーブルの列削除

    タイトルの通りテーブル(test)の列(retu)を削除したいのですが・・・ Sql*pLUS画面 SQL> alter table test drop(retu); ←この用に入力 alter table test drop(retu) * エラー行: 1: エラーが発生しました。 ORA-00905: キーワードがありません。 となってしまい列を削除できません。 なにか構文の間違いでしょうか?

  • Oracle10gのデータベースの移行について

    Oracle10gのデータベースの移行について質問です。 Oracle10g が稼動しているサーバ機があります。 老朽化の為、新しいハードウェアへ入れ替える事になりました。 OSは、入れ替え前も入れ替え後もWindows Server 2003です。  DB: Oracle10g → Oracle10g  OS: Windows Server 2003 → Windows Server 2003 現行のサーバ上では4つのインスタンスが稼動しています。 新しいサーバ上に、同じ構成でそのまま移行する方法を検討していますが、下記のような方法で大丈夫なものでしょうか? (1)新しいサーバ上にOracle10gを初期データベースなしでインストールする (2)新しいサーバ上で新規のOracleインスタンスを4つ作成する (ORADIMツールを使用) (3)現行のサーバ上の各インスタンス・Oracle関連サービスを停止し、オフラインでデータベース関連のファイルのバックアップを取得する (4)現行のサーバから、新しいサーバへ、オフラインで取得したバックアップファイルを転送する (5)新しいサーバ上の各インスタンス・Oracle関連サービスを停止する (6)新しいサーバ上から、(3)で取得したファイルと同じファイルを削除する (7)新しいサーバ上で、バックアップしたファイルを現行のサーバと同じ位置に配置する (8)新しいサーバ上のOracle関連サービスと各インスタンスを起動し、動作を確認する どなたか、回答宜しくお願い致します。

  • oracle:統計情報とテーブル削除

    oracle10gを使用しております。 統計情報について質問させていただきます。 テーブルAについて、[statistics = none]を指定しExportします。 統計情報取得コマンドを実行します。 analyze table TABLE_A compute statistics; 後に、テーブルAを削除します。 drop table TABLE_A; バックアップファイルを基に、テーブルAをImportします。 このとき、テーブルAの統計情報はExport実行時と同じになるのでしょうか?

  • DB2でUNIQUE制約を削除したい

    DB2で以下のように明示的な名前のないUNIQUE制約を削除したいのですが、よい方法をご存じの方がおられましたらご教授ください。 (例) 1. 表の作成 CREATE TABLE TEST ( COL1 INT NOT NULL) 2. 明示的な名前を作成せずにUNIQUE制約を作成 ALTER TABLE TEST ADD UNIQUE (COL1); 上記のように名前指定しなかったUNIQUE制約を ALTER TABLE文で削除したいのですが、どのように すればよろしいのでしょうか? マニュアルの構文では制約名を指定する必要あるようで、 syscat.tabconstカタログで自動でつけられた制約名を調べた後、 以下のように指定したところ制約は削除されました。 (例) ALTER TABLE TEST DROP CONSTRAINT SQL090123084403480 しかしプログラムの修正が少なくなるよう、制約名を調べずにALTER TABLE 一文で削除できないものかと悩んでおります。 もしくはストアドプロシージャでも構いません。 よろしくお願いします。

  • 【oracle10g 】Oracle Enterprise Managreでの表のインポート

    資格取得の為に、体験版を操作しながら勉強しています。Oracle Enterprise Managreで、表をエクスポートし、一度表を削除(truncate)して、インポートしようとしています。 画面上、インポートは正しく行われているみたいですが、データが戻ってません。 ログには ORA-39111: Dependent object type TABLE_STATISTICS skipped, base object type TABLE:"TOSHIHIRO"."PERSON" already exists Job "TOSHIHIRO"."IMPORT000252" completed with 2 error(s) at 20:11 と、あります。 ネットで検索すると、以下を見つけましたが、具体的にどのような処理をすれば良いのかわかりません。 ORA-39111: 依存オブジェクト型stringはスキップされ、ベース・オブジェクト型stringはすでに存在します。 原因: ベース・オブジェクトがすでに存在するため、Data Pumpインポート・ジョブの実行中に依存オブジェクトがスキップされています。 処置: ダンプ・ファイルからのオブジェクトを必要とする場合は、ベース・オブジェクトと依存オブジェクトを削除し、適切なフィルタを使用してインポートを再試行してください。 よろしくお願いします。

  • テーブルが存在していたらDROPしてからCREATEするには?

    作成しようとするテーブルが既に存在している場合 一度DROP TABLEを行いたくて、以下のSQLを作成したのですが 削除が実行されません。 そもそものやり方自体が間違っているのでしょうか? 実行後のメッセージは テーブルが存在しなかった場合→コマンドは正常に完了しました。 テーブルが存在した場合→データベースにオブジェクト名 'SLIP_ITEMXX' が既に存在します。 と、表示されます。 --テーブルが存在した場合削除する ※ストアド使用 CREATE PROCEDURE SP_SLIP_ITEMXX AS DECLARE @TableName varchar DECLARE @Sql varchar set @TableName = 'SLIP_ITEMXX' SET @Sql = 'if exists (select * from dbo.sysobjects where id = object_id(N' + @TableName + ') ' + 'DROP TABLE ' + @TableName EXEC(@Sql) GO --テーブル生成 CREATE TABLE SLIP_ITEMXX( [slip_no] [int] NOT NULL ) GO --ストアド削除 DROP PROCEDURE SP_SLIP_ITEMXX GO

  • ロールバックできないステートメントについて

    こんばんは。 既存のテーブルのカラムを削除することになりまして、 以下の手順で変更をかけました。 環境:mysql_5.5 mysql>begin; mysql>alter table test_table drop column test_column; mysql>desc test_table; mysql>rollback; mysql>desc test_table; しかし、ロールバックをかけても元に戻らなかったのですが、 http://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.htmlhttp://dev.mysql.com/doc/refman/5.1/ja/cannot-roll-back.html の記述にあるようにバージョン5.5でもalterでのロールバックは出来ないのでしょうか。 英語のサイトを見たのですが、ただしく訳せませんでした。 http://dev.mysql.com/doc/refman/5.5/en/implicit-commit.htmlhttp://dev.mysql.com/doc/refman/5.5/en/implicit-commit.html 回避方法があったら、教えてください。

  • Oracle8での表領域の開放について

    DWHで使用しているDB(Oracle8)についての質問です。 ユーザーオブジェクトを格納している非SYSTEM表領域が自動拡張の末がDisk容量を圧迫してきています。サーバーのDisk容量に余裕がなくデータファイルを追加することでの対策は打てません。 大容量のTABLEの作成や削除をしていたので実際に使用している容量は多くないはずなので、一度リフレッシュ(使っていない表領域を開放)したいのですが、Oracle8で可能でしょうか? 可能であれば手順についてもご教授いただきたく、宜しくお願い致します。

  • MySQLのカラムを削除したが,それを復元したい

    MySQLのテーブル内のカラムを再編成しようとしています. そこで,カラムAをALTER TABLE DROPで削除しました. その直後,カラムAは必要であることに気づきました. テーブルのバックアップを取っていないので,困ります. この削除コマンドをキャンセル(UNDO)したり,削除したカラムを復元できますか?