oracle數據庫不能導出空表結構的解決辦法

原文鏈接:https://blog.csdn.net/qq_40672583/article/details/82827755

oracle 11g 的新特性,當表無數據時,不分配segment來節省空間,從而導致我們在導出數據庫表結構時不能夠導出空表結構,此時的解決辦法如下:
辦法一:向空表中insert數據,再rollback就會產生segment,然後便可以導出空表結構 了。
當然在空表很多的情況下,那我們處理起來就比較麻煩了,需要用sql批處理這些空表:

/*首先查出當前用戶下所有的空表*/
select table_name from user_tables where NUM_ROWS=0;
/*再查出相關的sql語句,最後執行查出來的語句*/
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;


辦法二:在創建好數據庫時並設置deferred_segment_creation參數

/*查看deferred_segment_creation的狀態*/
show parameter deferred_segment_creation;
/*將狀態改爲false表示對所有的表都創建segment*/
alter system set deferred_segment_creation=false;


注意:deferred_segment_creation的狀態一定要在創建表之前修改才生效,所以如果處理已經創建了表的情況用第一種方法。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章