Oracle11G R2 用exp無法導出空表解決方法
作者:吳偉龍 Name:Prudence Woo
在11G R2中有個新特性,當表無資料時,不配置設定segment,以節省空間Oracle當然在執行export導出時,空表則無法導出,但是還是有解決辦法的:
解決方法:
該方法是在在空表中插入資料,再删除,則産生segment。導出時則可導出空表。
該參數值預設是TRUE,當改為FALSE時,無論是空表還是非空表,都配置設定segment。修改SQL語句:
alter system set deferred_segment_creation=false scope=both;
需注意的是:該值設定後對以前導入的空表不産生作用,仍不能導出,隻能對後面新增的表産生作用。如需導出之前的空表,隻能用第一種方法。
select 'alter table '||table_name||' allocate extent;' fromuser_tables where num_rows=0;
把查詢結果導出,執行導出的語句,強行修改segment值,然後再導出即可導出空表,
注意:資料庫插入資料前,修改11g_R2參數可以導出空表
查找空表:
select 'alter table '||table_name||'allocate extent;' from user_tables where num_rows=0