oracle資料庫匯出空表問題

2021-09-02 16:54:51 字數 577 閱讀 2031

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了 該方法是在在空表中插入資料,再刪...