Oracle 11g的exp不能匯出空表

xz43發表於2012-07-19
由於公司內部沒有Oracle 11g,以前也沒怎麼使用過該版本,所以一些新特性還不是很瞭解。這次匯出11g的資料庫,就遇到了exp不能匯出空表的問題,折騰了好久也沒搞明白,後來切換到expdp的資料泵方式,增加version引數,方便匯入到10g資料庫,終於完整的把資料庫給匯出了,包括100個多空表。
 
今天上網才瞭解到,原來這個exp不匯出空表,是11g的新特性,當表無資料時,不分配segment,以節省空間,所以exp匯出的時候,不匯出這些表。
 
針對這個問題,網上有個方便的解決方案。
 
用以下這句查詢空表並生成執行命令
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;
 
把查詢結果匯出,執行匯出的語句。
類似 alter table T_TAB allocate extent;
 
然後再用exp的方式去匯出資料庫,終於可以完整的匯出包括空表的資料庫。
 
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-735993/,如需轉載,請註明出處,否則將追究法律責任。

相關文章