• ベストアンサー

10gより前のバージョンからRECYCLEBINの中身を削除するには?

Oracle10gのデータベースでテーブル等を削除した際にできる フラッシュバックを削除したいのですが、 10gより前のバージョンのSQL*plusから  PURGE RECYCLEBIN を実行すると、  SP2-0734: "PURGE RECY..."で開始するコマンドが不明です - 残りの行は無視されました。 などとなります。 10gより前のバージョンのSQL*plusから、 RECYCLEBINの中身を削除する方法はないのでしょうか? ないなら、削除する際にフラッシュバックテーブルを作成しない方法はありますでしょうか?

  • Oracle
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • MZ-80B
  • ベストアンサー率56% (46/81)
回答No.2

SQL*Plusのパーサを使わないように begin execute immediate 'purge recyclebin'; end; / で消せないですか?

kyt1112
質問者

お礼

ご回答ありがとうございました。 試してみたところ、この方法で消すことができました。 こんな方法があったんですね。

その他の回答 (2)

回答No.3

>begin >execute immediate 'purge recyclebin'; >end; >/ その手がありましたね。失礼しました。

回答No.1

>10gより前のバージョンのSQL*plusから、 >RECYCLEBINの中身を削除する方法はないのでしょうか? 無いです。 >ないなら、削除する際にフラッシュバックテーブル >を作成しない方法はありますでしょうか? drop table時にpurge句をつけることでゴミ箱行きを 回避できます。 DROP TABLE テーブル名 PURGE; これも10gのコマンドなので10g以外の sql*plusからはできないかもしてません。 #用語的な話で、この機能はフラッシュバックドロップ機能です。 #フラッシュバックテーブルは別の機能をさすのでご注意を。

kyt1112
質問者

お礼

ご回答ありがとうございます。 >DROP TABLE テーブル名 PURGE; 8iのsql*plusから試したところ、 ゴミ箱行きにせずに削除することができました。 用語についてのご指摘もありがとうございました。

関連するQ&A

  • データ削除の方法

    オラクルのデータベース容量を減らす為に、SQL PLUSにてDELETE文を実行(テーブル別に)しました (テーブルの中身、全件削除ではなく条件に一致した不要なデータのみ削除) 条件に該当するデータは消えましたが、オラクルデータベース自体の容量が逆に増えていました 正しいデータの削除方法を教えて頂きたいのですが。宜しくお願いいたします データベース:ORACLE 9I DATABASE

  • Oracle10g・・ODBCで接続できない

    Oracle10gのStandardEditionをサーバーにインストールし、データベースを作成しました。 それに対してクライアントにも10gをインストールし、ローカルメソッド名を設定して、接続テストも通りました。SQL*Plusを起動して接続することもできました。 ですが、Accessを使ってテーブルの中身を見ようと思い、ODBCを設定したのですが接続テストをすると固まってしまいます。どうすればODBCで接続できるようになるのでしょうか?

  • コマンド:全データを表示させる or SqlDeveloperの入手先

    SQL*Plusから、スキーマー・データベースの一覧やテーブル一覧など全ての情報を表示させる方法が知りたいです。 MySQLでいうところの、show databasesのようなコマンドです。 あと、Oracle Sql Developerの日本語バージョンのダウンロードサイトが知りたいです。 無ければ英語版でも構いません。 というより無料で手に入るのでしょうか?

  • テーブル領域をrmコマンドで消してしまいました.

    Oracle(ver8)データベースを使って、sqlコマンドでテーブルを作成後、UNIXのrmコマンドでテーブル領域を削除しまいました。 そのため、Oracle起動時にこの領域をマウントしようとして失敗してしまい データベースにアクセスできません。 復旧方法をご教授下さい。 テーブルは不要なので、Oracleデータベースにこの領域が削除されていることを認識させたいのです。

  • DBの削除とインポート

    初心者ですが、よろしくお願いいたします。 Win2000 Serverで、Oracle8i Workgroup Serverを使用していますが、今使用しているDBを削除し、まるまるエクスポートしたDBをインポートするのですが、 【削除】 1.『Database Configuration Assistant』の『データベースの削除』を使用すればよいのでしょうか? 2.上記方法で、Oracle8i自体が削除されることはないでしょうか? 3.SQL*PLUSにて削除はできるでしょうか? 又、もしできるようであれば、どのようなステートメントで、何を削除すればよいでしょうか? 【インポート】 1.インポートは、どのようにすればよいでしょうか? 2.SQL*PLUSを使用してのインポートと、他の何かを使用したときの方法と、そのメリット・デメリット教えていただければ幸いです。 よろしくお願いいたします。

  • Oracle10gのDBからデータを抜き出したい

    Oracle10gのテーブルに登録されているデータをある条件で 抜き出しテキストデータを作成したいのですが、簡単な方法はありますでしょうか。SQLコマンドも初心者レベルですので、 良い方法を教えてください。よろしくお願いします。

  • ORACLEでのSQLについて

    SQLについて教えてください。 今、VBからORACLEデータベースにSQLを投げる処理を作っているのですが、 一つわからないことがあります。 例えば、アクセスでは、クエリで新しいテーブルを作成するという考え方がありますが データベースがORACLEでも同じようなことができるのでしょうか? 別に新しいテーブルを作成することに執着するわけではなく、テーブルのデータを削除 してから、そのテーブルにSQLにて引っ張ってきたデータを入れる という ものでもいいと考えています。そのやり方でもかまいませんので教えてください。 宜しくお願いします。 Oracle8.1.6 vb6

  • Oracle8iでテーブルをエクスポートする方法

    Oracle10gを使用しています。Oracle8iから特定のテーブルを抽出してOracle10gに入れようとしましたが、Oracle10gのexpコマンドは互換性の問題で8iに対して使えませんでした。そこでOracle8iのexpコマンドを使用しようかと考えましたが、テーブルごとのエクスポートができないとのことで不可(データベースが大きすぎるため、そもそも8iのExpコマンドを実行できる権限を持っていないのでできませんが)。 仕方がないのでExpコマンドはあきらめて、テーブル定義抽出→データをCSVまたはSQLで抽出という手順でデータを移そうかと考えています。データの抽出はできたのですが、テーブル定義の取得は10gで使えるdbms_metadata.get_ddlが使用できないので取得できずにこまっています。8iでテーブル定義を取得するにはどうしたらいいのでしょうか? なお当方8iのデータベースのSystem/Sys権限を所有していないません。また8iがインストールされているサーバへログインすることもできません。それを考慮した上で実現可能な方法をご提示願います。

  • Oracle11gの接続について大至急教えて下さい

    WindowsServer2008R2(64bit)にOracle11g(64bit)のデータベースを構築し、 同機上のアプリケーションからアクセスしようとしています。 (具体的にはPro*C/C++を使ってプリコンパイルしているCで作成したDLLやEXEです。) これらのアプリケーションは元々Oracle10gの機能を用いて作成してあった物を流用している為、 Oracle11g(32bit)のクライアントがないと動作しない様です。 従って、2008Serverには32bit版の11gクライアントもインストールしました。 (Oracle11g(64bit)のメディアパック内の32bitクライアントディスクからインストール) (手順) 1:Oracle11g(64bit)ホストのインストール&データベースの構築 2:Oracle11g(32bit)クライアントのインストール 3:データベースに表領域とユーザを作成 4:クライアントでローカル・ネットサービス名の作成 で、ここまではできたのですが、 11g(32bit)クライアント側のSQL*Plusを起動して作成したユーザでログインしようとすると ORA-12560:TNS:プロトコル・アダプタ・エラーが発生しましたとなってしまいます。 ただ、コマンドプロンプトから「ユーザ/パスワード@接続文字列」を直接指定して SQL*Plusを起動するときちんと接続できます。 何か順番や方法を間違えているのでしょうか? ちょっと急いでいてなるべく早く解決させたいので、 間違い・チェックすべき事の漏れなど 直接的な解決策でない事でもかまいませんのでご教授下さい。

  • truncate文で全テーブルを一気に削除できるか?

    さきほどと似たような質問ですみません。 SQLコマンドであるデータベースの全テーブルを削除したいんですが、 truncate一文ですませる方法はないでしょうか。 それとも、一行ずつ truncate tableA truncate tableB .... とやっていくしかないのでしょうか?