oracle11gexp匯出空表

2021-12-30 05:18:29 字數 904 閱讀 5804

oracle 11g 預設對空表不分配segment,故使用exp匯出oracle11g資料庫時,空表不會匯出。預設情況下,deferred_segment_creation 引數為true,將引數

deferred_segment_creation 引數設定為false後,無論是空表還是非空表,都分配segment。

在sqlplus 中連線資料庫:

(1)、檢視該引數的值

(2)、修改該引數值為false

sql> alter system set deferred_segment_creation=false;

注: 該值設定後只對後面新增的表產生作用,對之前建立的空表不起作用。(我在修改此引數之前建立一張空表tab1,修改之後又建立一直表tab2,在匯出操作時,確實沒有匯出表tab1 而匯出表tab2。)

deferred_segment_creation=false之前的空表如何才能匯出呢???

查詢空表:

sql> select table_name from user_tables where num_rows=0 or num_rows is null;

方法1:insert 一行,然後在rollback 就產生segment了。該方法是在空表中插入資料再刪除,則產生segment。匯出時則可匯出空表。

方法2:可以使用手工為空表分配extent的方式,來解決之前建立的空表的問題。

sql> alter table tablename allocate extent;

方法3:不用exp ,使用expdp工具可以匯出空表。

Oracle11gExp匯出空表方法

之前有需求要匯入匯出資料,每次發現執行exp匯出的表都不全,後來發現,原來在11g新特性中,對exp的匯出做了限制。oracle11g 在使用exp 匯出資料時會出現空表不能匯出的問題,這是因為 1 oracle11g 預設對空表不分配segment,故使用exp 匯出oracle11g 資料庫時,...

Oracle 11g exp不能匯出的空表處理方法

oracle 11g在用exp匯出時,空表不能匯出。11g中有個新特徵,當表無近據時,不分配segment,以節省空間 處理方法 1 insert一行,再rollback就發生segment了。該方法是在在空表中插入資料,再刪除,則發生segment。匯出時則可匯出空表。2 配置deferred s...

oracle11g匯出空表

該引數意思是當建立物件 如表 初始時沒有資料,是否立即建立segment。預設是true。這會導致在按使用者匯出時,沒有segment的物件不會匯出。首先執行下面的語句 select alter table table name allocate extent from user tables wh...