1. 程式人生 > >oracle 11g使用exp導出空表問題解決辦法

oracle 11g使用exp導出空表問題解決辦法

user err 數據庫 問題解決 默認 ble set lte def

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

alter system set deferred_segment_creation=false; 

該參數值默認是TRUE,當改為FALSE時,無論是空表還是非空表,都分配segment。
需註意的是:該值設置後對以前導入的空表不產生作用,仍不能導出,只能對後面新增的表產生作用。
查詢之前已經創建的空表
select ‘alter table ‘||table_name||‘ allocate extent;‘ from user_tables where num_rows=0
把查詢結果導出,執行導出的語句
‘ALTER TABLE ‘||TABLE_NAME||‘ ALLOCATE EXTENT;‘

如果表少,可以在空表執行插入一行再刪除,這樣數據庫表就會分配segment了。。。

oracle 11g使用exp導出空表問題解決辦法