問題簡述:Oracle 11G在用EXPORT導出時,空表不能導出,這是由於11G R2中有個新特性,當表無數據時,不分配segment,以節省空間sql
解決方案:數據庫
1.設置deferred_segment_creation 參數 io
該參數值默認是TRUE,當改成FALSE時,不管是空表仍是非空表,都分配segment。table
使用sys用戶登錄,運行以下SQL語句:select
alter system set deferred_segment_creation=false scope=both;sql語句
注意:該值設置後對之前導入的空表不產生做用,仍不能導出,只能對後面新增的表產生做用。因此建議在ORACLE安裝好,數據庫導入以前,即進行此設置。方法
2. 如在數據庫導入後才發現此問題,可採用以下方法解決:數據
強行修改空表的segment值,而後導出:查詢
用須要導出的數據庫用戶登錄,運行如下sql語句查找空表, scope
select 'alter table '||table_name||' allocate extent;' from user_tables where segment_created='NO';
把查詢結果導出,執行導出的語句,強行修改segment值,而後再導出便可導出空表。