Oracle 11G在用EXP 導出時,空表不能導出解決


 

【問題產生】

  11G中有個新特性,當表無數據時,不分配segment,以節省空間。導致空表不能導出

 

【解決方法】

  ①insert一行,再rollback就產生segment了。

  該方法是在在空表中插入數據,再刪除,則產生segment。導出時則可導出空表。

 

  ②設置deferred_segment_creation 參數   

該參數值默認是TRUE,當改為FALSE時,無論是空表還是非空表,都分配segment

【注意】:該值設置后對以前導入的空表不產生作用,仍不能導出,只能對后面新增的表產生作用。如需導出之前的空表,只能用第一種方法。最后找到一種方法,具體查看下方🌂

 

    打開Command Window

      

執行SQL> 

  show parameter deferred_segment_creation; 

      

 執行SQL>

  alter system set deferred_segment_creation=false;

      

   查看修改   

      

 

  🌂處理之前的空表無法導出問題

    A、先查詢一下當前用戶下的所有空表 

select table_name from user_tables where NUM_ROWS=0;

 

    B、用以下這句查找拼接空表SQL

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

    

    C、把查詢結果導出,執行導出的語句(Command Window)。

    

 

    D、然后再執行exp數據庫導出命令,這樣就能把之前空的表也導出來了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM