Oracle10gに初めて触れてから1年未満です。
開発中にテスト用にテーブル内容を保存しておきたいことがよくある。
思ったとおりの動作にならず、再度同じデータで検証したい場合や、テストデータを作り直すのが大変な場合。
CREATE TABLE "TABLE1_BAK" AS SELECT * FROM "TABLE1";
まあ、こんなことをやりますね。
で、ふとテーブルの一覧をみたらば。(ちなみにツールはOSqlEditを使わせて頂いています。)
なんか、"BIN$…"というテーブルが大量にあるじゃないですか。
おかしなネーミングのテーブル作ったの誰?ぱっと見BASE64エンコードしてるっぽい?しかもDROPできない。
ググルと。Oracle Flashback Table/Drop という機能があるようです。
要するにオペミスでDROPしたテーブルを戻せるという機能ですね。Windowsのごみ箱と一緒ですね。備忘録しておきます。
【削除オブジェクト一覧】
SELECT OBJECT_NAME ,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME LIKE 'BIN$%';
【削除オブジェクト復元】
FLASHBACK TABLE "BIN$....." TO BEFORE DROP;
【別名】
FLASHBACK TABLE "BIN$....." TO BEFORE DROP RENAME TO "別名テーブル";
【SQL*PLUSでごみ箱を見る】
SHOW RECYCLEBIN
【ごみ箱全体を掃除】
PURGE RECYCLEBIN;
【特定の表や索引を掃除】
PURGE TABLE|INDEX "BIN$.....";
【データベース全体のごみ箱を掃除】
PURGE DBA_RECYCLEBIN;
【ごみ箱に入れない】
DROP TABLE "TABLE" PURGE;
#無差別にこのDROP ~ PURGEを使い出しそう…Windowsでも
#いつの間にかShift + Delete → Enterで高速抹消したりするようになってるし。
開発中にテスト用にテーブル内容を保存しておきたいことがよくある。
思ったとおりの動作にならず、再度同じデータで検証したい場合や、テストデータを作り直すのが大変な場合。
CREATE TABLE "TABLE1_BAK" AS SELECT * FROM "TABLE1";
まあ、こんなことをやりますね。
で、ふとテーブルの一覧をみたらば。(ちなみにツールはOSqlEditを使わせて頂いています。)
なんか、"BIN$…"というテーブルが大量にあるじゃないですか。
おかしなネーミングのテーブル作ったの誰?ぱっと見BASE64エンコードしてるっぽい?しかもDROPできない。
ググルと。Oracle Flashback Table/Drop という機能があるようです。
要するにオペミスでDROPしたテーブルを戻せるという機能ですね。Windowsのごみ箱と一緒ですね。備忘録しておきます。
【削除オブジェクト一覧】
SELECT OBJECT_NAME ,OBJECT_TYPE FROM USER_OBJECTS WHERE OBJECT_NAME LIKE 'BIN$%';
【削除オブジェクト復元】
FLASHBACK TABLE "BIN$....." TO BEFORE DROP;
【別名】
FLASHBACK TABLE "BIN$....." TO BEFORE DROP RENAME TO "別名テーブル";
【SQL*PLUSでごみ箱を見る】
SHOW RECYCLEBIN
【ごみ箱全体を掃除】
PURGE RECYCLEBIN;
【特定の表や索引を掃除】
PURGE TABLE|INDEX "BIN$.....";
【データベース全体のごみ箱を掃除】
PURGE DBA_RECYCLEBIN;
【ごみ箱に入れない】
DROP TABLE "TABLE" PURGE;
#無差別にこのDROP ~ PURGEを使い出しそう…Windowsでも
#いつの間にかShift + Delete → Enterで高速抹消したりするようになってるし。