Oracle 11g使用exp命令導出空表

Oracle 11g使用exp命令導出數據行rows爲零的空表

使用Oracle 11g的exp命令導出用戶數據庫表的時候,有的rows爲0的空表不能導出,原因是Oracle 11g新增了一個特性,deferred_segment_creation,其含義是段延遲創建,默認參數爲true。

當新建數據表且參數爲true時,沒有向其中插入數據,那麼這個表不會立即分配segment,也就是不佔數據空間,即表不分配segment以節省空間,所以這些表也沒能導出來。

在系統表user_tables中也可以看到segment_treated的字段裏是“NO”或者“YES”說明了該表是否分配了segment。

解決辦法:

1、select 'alter table ' ||table_name ||' allocate extent;' from user_tables where segment_created='NO';

2、執行生成的sql語句,例如:

alter table table_name allocate extent;

這樣就可以給每一張已經存在的表來分配 segment,然後就可以利用exp 導出。

發佈了35 篇原創文章 · 獲贊 13 · 訪問量 8540
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章