oracle11g 空表匯出

2021-08-31 20:11:11 字數 2481 閱讀 3141

oracle11g的新特性,資料條數是0時不分配segment,所以就不能被匯出。

解決方法:

1插入一條資料(或者再刪除),浪費時間,有時幾百張表會累死的。

2建立資料庫之前

使用**:

sql** 

alter system set  deferred_segment_creation=false; 

調整再建表

這兩種方都不好

下面是終極方法:

先查詢一下哪些表是空的:

sql** 

select table_name from user_tables where num_rows=0; 

下面我們通過select 來生成修改語句:

sql** 

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 

然後就在結果視窗裡面生成了下面那些東西:

sql** 

alter table e2user_state allocate extent; 

alter table enterprise_e2user allocate extent; 

alter table enterprise_info_type allocate extent; 

alter table enterprise_mapmark allocate extent; 

alter table enterprise_needtask allocate extent; 

alter table enterprise_picture allocate extent; 

alter table enterprise_report allocate extent; 

alter table enterprise_report_type allocate extent; 

alter table enterprise_team allocate extent; 

alter table fromuser_adjunct_target allocate extent; 

alter table fromuser_offer allocate extent; 

alter table needtask_type allocate extent; 

alter table sys_privilege allocate extent; 

alter table sys_relevance_resource allocate extent; 

alter table sys_relevance_target allocate extent; 

alter table sys_resource_type allocate extent; 

alter table task_feedback allocate extent; 

alter table task_mytasktype allocate extent; 

alter table touser_message allocate extent; 

alter table aboutuser_point allocate extent; 

alter table aboutuser_point_mark allocate extent; 

alter table aboutuser_querykey allocate extent; 

alter table aboutuser_report_history allocate extent; 

alter table dict_comment_type allocate extent; 

alter table dict_industry_type allocate extent; 

alter table dict_post allocate extent; 

alter table dict_region allocate extent; 

alter table enterprise_comment allocate extent; 

alter table enterprise_comment_c allocate extent; 

alter table enterprise_info allocate extent; 

alter table enterprise_info_c allocate extent; 

alter table enterprise_info_state allocate extent; 

alter table calendar_createtype allocate extent; 

alter table calendar_my allocate extent; 

alter table calendar_type allocate extent; 

ok 執行上面那些sql,之後再exp吧,那就是見證奇蹟的深刻。

oracle11g匯出空表

該引數意思是當建立物件 如表 初始時沒有資料,是否立即建立segment。預設是true。這會導致在按使用者匯出時,沒有segment的物件不會匯出。首先執行下面的語句 select alter table table name allocate extent from user tables wh...

oracle 11g匯出空表

oracle 11g 用exp命令匯出庫檔案備份時,發現只能匯出來一部分表而且不提示錯誤,之前找不到解決方案只能把沒匯出來的表重新建建立。後來發現是所有的空表都沒有匯出來。於是想好好查查,因為在以前的10g版本中沒有這樣的問題。查資料發現oracle 11g中有個新特性 新增了乙個引數 deferr...

oracle11g匯出空表

這意味著,當你建立乙個物件引數 如表 起初沒有資料。是否立即建立segment。預設值是true。這會導致使用者在匯出時,否segment該物件不出口。首先執行以下的語句 select alter table table name allocate extent from user tables w...