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

2021-09-20 22:32:35 字數 484 閱讀 3028

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了。。。

Oracle11g使用exp匯出空表

1 oracle11g預設對空表不分配segment,故使用exp匯出oracle11g資料庫時,空表不會匯出。2 設定deferred segment creation 引數為false後,無論是空表還是非空表,都分配segment。在sqlplus中,執行如下命令 sql alter syste...

Oracle11g使用exp匯出空表

1 oracle11g預設對空表不分配segment,故使用exp匯出oracle11g資料庫時,空表不會匯出。2 設定deferred segment creation 引數為false後,無論是空表還是非空表,都分配segment。在sqlplus中,執行如下命令 sql alter syste...

Oracle11g使用exp匯出空表

1 oracle11g預設對空表不分配segment,故使用exp匯出oracle11g資料庫時,空表不會匯出。2 設定deferred segment creation 引數為false後,無論是空表還是非空表,都分配segment。在sqlplus中,執行如下命令 sql alter syste...