最近在用ORACLE 11G 。對數據導出導入的時候發現一個問題:oracle 不會對無數據的空表進行導出。查資料發現,原來這種情況只出現在Oracle 11g 中,處理辦法如下:
sqlcommand: alter system set deferred_segment_creation=false;
意思是禁止推遲創建表的段,也就是表創建後不管有沒有數據都要分配空間。該參數修改後對該時間點以前創建的表無用。所以還是要對以前的表分配空間。
sql: Select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null
以上拼出來的SQL可以批量生成修改分配空間爲空的表。將查詢的結果執行以下即可。現在再進行EXP 或者 EXPDP 的導出命令就可以了