Java世界

          學習筆記

          常用鏈接

          統計

          積分與排名

          天籟村

          新華網

          雅虎

          最新評論

          oracle分區表徹底刪除的辦法

          oracle分區表徹底刪除的辦法
          當對一個不再使用的分區表進行drop后,查詢user_tab_partitions視圖發現出現如下不規則的分區表表名:
          SQL> select distinct table_name from user_tab_partitions;
          BIN$l+Pv5l1jCMXgQKjAyQFA0A==$0
          這樣很容易導致自己寫的"自動增加表的分區"的存過發生錯誤,因此為了避免再修改存過,只能把這些不規則的表名刪除才行.現提供如下方法徹底刪除這些不規則的表名.

          其實當我們執行drop table tablename的時候,不是直接把表刪除掉,而是放在了回收站里,可以通過查詢user_recyclebin查看被刪除的表信息.這樣,回收站里的表信息就可以被恢復或徹底清除。
          通過查詢回收站user_recyclebin獲取被刪除的表信息,如果想恢復被drop掉的表,可以使用如下語句進行恢復
          flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop;
          上面的語句是將回收站里的表恢復為原表名稱
          flashback table <user_recyclebin.object_name or user_recyclebin.original_name> to before drop rename to <new_table_name>;
          將回收站里的表恢復為指定的新表名稱,表中數據不會丟失。

          若要徹底刪除表,則使用語句:drop table <table_name> purge;這樣drop后的表就不被放入回收站
          如果是清除回收站中指定的表,可以使用語句purge table <table_name>;
          如果是清除當前用戶回收站所有的表,可以使用語句purge recyclebin;
          如果是清除所有用戶的回收站:purge dba_recyclebin;
          到此,按上面的方法清除回收站的數據后,再查詢user_tab_partitions視圖,發現不規則表名已經沒有了
          SQL> select distinct table_name from user_tab_partitions;
          no rows selected

          在此順便再提一下truncate操作后不釋放空間的解決辦法
          Truncate不支持回滾,并且不能truncate一個帶有外鍵的表,如果要刪除首先要取消外鍵,然后再刪除。
          truncate table 后,有可能表空間仍沒有釋放,可以使用如下語句:
          alter table 表名稱 deallocate UNUSED KEEP 0;
          注意如果不加KEEP 0的話,表空間是不會釋放的。
          例如:
          alter table tablename deallocate UNUSED KEEP 0;
          或者:
          TRUNCATE TABLE tablename DROP STORAGE才能釋放表空間。
          例如: truncate table tablename DROP STORAGE;

          posted on 2013-01-08 15:25 Rabbit 閱讀(3392) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 泾源县| 霍城县| 麦盖提县| 桑日县| 花垣县| 肃宁县| 北流市| 湄潭县| 安龙县| 吴江市| 梨树县| 乌拉特中旗| 堆龙德庆县| 山东| 曲阳县| 杭锦后旗| 奉化市| 襄汾县| 吴旗县| 益阳市| 鹰潭市| 潼关县| 梅州市| 图片| 大理市| 宣化县| 济阳县| 谢通门县| 泰宁县| 小金县| 繁峙县| 彭泽县| 四川省| 于田县| 岢岚县| 怀柔区| 河西区| 承德县| 昌吉市| 安平县| 辽宁省|