Oracle匯出空表(從來都沒有用過的表)

qingyezhu發表於2015-04-01
Oracle11g預設對空表不分配segment,故使用exp匯出Oracle11g資料庫時,空表不會匯出!
1、設定deferred_segment_creation引數為FALSE後,無論是空表還是非控表,都分配segment。
在sqlplus命令視窗中,執行:
SQL> show parameter deferred_segment_creation

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation            boolean     TRUE

SQL> alter system set deferred_segment_creation=false
  2  ;

System altered

SQL> show parameter deferred_segment_creation

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
deferred_segment_creation            boolean     FALSE

SQL> 

該值設定後只對後面新增的表產生作用,對之前建立的空表不起作用!

2、使用 allocate extent
查詢空表資訊
select * from user_tables where num_rows=0 or num_rows is null;
形成有效的執行SQL語句
select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;
執行如表ABC
alter table ABC allocate extent;

 

相關文章