Oracle 11g無法匯出空表的解決方案

zhenghaishu發表於2015-09-28

Oracle 11g無法匯出空表的解決方案

 

問題:

EXP導某一使用者下的表時,發現空表沒有被匯出

 

原因:

Oracle 11g預設不給空表分配extent,也就說空表不佔資料空間。這樣匯出的時候自然無從導起。

 

解決思路:

給空表分配extent。如果是測試環境的話,因為判斷是否為空表比較煩瑣,可以給全部的表分配extent

 

代表實現:

1 建立alloc_extent.bat,內容如下

sqlplus scott/tiger@local @alloc_extent.sql > alloc_extent.log

 

2 同一目錄下建立alloc_extent.sql,內容如下:

set pagesize 100

set heading off

spool D:\t.sql

select  'alter table '||table_name||' allocate extent;' from user_tables;

spool   off

@D:\t.sql

exit

 

這裡set pagesize 100是把每頁設為100行,意思是每輸出100行,顯示一行虛線和一行欄位名。預設是十幾行就顯示一行虛線和一行欄位名。

set heading off是把每個pagesize的虛線和欄位名去掉,不顯示出來。

spool D:\t.sql表示把輸出結果儲存到D盤根目錄下的t.sql檔案中。

@D:\t.sql表示執行D盤根目錄下的t.sql檔案。

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

相關文章