Oracle 11g exp不能匯出的空表處理方法

2021-06-18 21:09:02 字數 630 閱讀 3775

oracle 11g在用exp匯出時,空表不能匯出。

11g中有個新特徵,當表無近據時,不分配segment,以節省空間

處理方法:

1、insert一行,再rollback就發生segment了。

該方法是在在空表中插入資料,再刪除,則發生segment。匯出時則可匯出空表。

2、配置deferred_segment_creation 引數

如:1、alter system set deferred_segment_creation=false; 

2、show parameter deferred_segment_creation;

該引數值默許是true,當改為false時,無論是空表仍舊非空表,都分配segment。

需留意的是:該值配置後對以前匯入的空表不發生作用,仍不能匯出,只好對後面新增的表發生作用。如需匯出之前的空表,只好用第一種方法

3、這種方法也是有點笨拙,但當前只想到這個方法

(1)找到有哪些空表   如:select table_name from user_tables where num_rows=0;

(2)在執行下面的sql,有多少張空表就執行多少次。如:alter table 表名 allocate extent;

oracle11gexp匯出空表

oracle 11g 預設對空表不分配segment,故使用exp匯出oracle11g資料庫時,空表不會匯出。預設情況下,deferred segment creation 引數為true,將引數 deferred segment creation 引數設定為false後,無論是空表還是非空表,都...

Oracle11gExp匯出空表方法

之前有需求要匯入匯出資料,每次發現執行exp匯出的表都不全,後來發現,原來在11g新特性中,對exp的匯出做了限制。oracle11g 在使用exp 匯出資料時會出現空表不能匯出的問題,這是因為 1 oracle11g 預設對空表不分配segment,故使用exp 匯出oracle11g 資料庫時,...

解決ORACLE11g匯出表不全問題及匯入匯出

一 因oracle11對未占有空間記憶體的表 即未用過的表 不進行匯出,所以在進行exp時只匯出的表會不全。檢查user tables表發現沒有匯出的表的segment created屬性是no 解決辦法 1 可通過下面語句生成sql執行 select alter table table name ...