11g中有個新特性,當表無資料時,不分配segment,以節省空間
解決方法:
1、insert一行,再rollback就產生segment了。
該方法是在在空表中插入資料,再刪除,則產生segment。匯出時則可匯出空表。
2、設定deferred_segment_creation 引數
該引數值預設是true,當改為false時,無論是空表還是非空表,都分配segment。
需注意的是:該值設定後對以前匯入的空表不產生作用,仍不能匯出,只能對後面新增的表產生作用。如需匯出之前的空表,只能用第一種方法。
搞了我好久,最後查到這個方法。
sql>select table_name from user_tables where num_rows=0;
根據上述查詢,可以構建針對空表分配空間的命令語句,如下:
or num_rows is null(注意:很多教程沒有這裡,這裡是有可能位空的)
上述**可產生批量的修改表extent的sql語句(有多少張空表就產生多少條),我們只需要將其生成的所有sql**全部執行,就可以給每一張已經存在的表來分配segment,就ok了。
Oracle匯出空表資料庫
經常我們在匯出資料庫進行備份的時候,會發現有些空表沒有匯出,如何匯出包含空表的完整資料庫呢?那麼請按照下面的方法進行即可。1.使用plsql工具,連線oracle資料庫 2.開啟乙個sql視窗,用以下這句查詢空表並生成執行命令 1select alter table table name alloc...
oracle資料庫空表無法匯入匯出的問題
一 該方式只對新加的表起作用1 oracle11g預設對空表不分配segment,故使用exp匯出oracle11g資料庫時,空表不會匯出。2 設定deferred segment creation 引數為false後,無論是空表還是非空表,都分配segment。在sqlplus中,執行如下命令 s...
oracle 11g資料庫匯出空表問題
oracle 11g中有個新特性,當表無資料時,不分配segment,以節省空間。所以,在使用資料庫部署工具 常見為v2.5 2015.12.10 匯出資料庫時,空表簿能被匯出,出現少表的問題。解決方案 1 insert一行,再rollback就產生segment了 該方法是在在空表中插入資料,再刪...