用exp無法匯出空表解決方法

2021-09-30 15:11:04 字數 605 閱讀 3072

11g r2中有個新特性,當表無資料時,不分配segment,以節省空間,可是在用export匯出時,空表也不能匯出,這就導致遷移時候丟失了一些表

解決方法:

一、 insert一行,再rollback就產生segment了。

該方法是在在空表中插入資料,再刪除,則產生segment。匯出時則可匯出空表。

二、 設定deferred_segment_creation引數

該引數值預設是true,當改為false時,無論是空表還是非空表,都分配segment。修改sql語句:

alter system set deferred_segment_creation=false scope=both;

需注意的是:該值設定後對以前匯入的空表不產生作用,仍不能匯出,只能對後面新增的表產生作用。如需匯出之前的空表,只能用第一種方法。

三、 用以下這句查詢空表並分配空間

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0;

把sql查詢的結果匯出,然後執行匯出的語句,強行為表分配空間修改segment值,然後再匯出即可匯出空表了。

oracle使用exp命令無法匯出空表解決方法

oacle 11g當表無資料時,不分配segment,因此我們使用exp命令匯出表時,空表無法匯出 我們可以執行如下sql,將查詢出來的結果執行,即可為空表分配segment 若想之後建立的空表不經過處理就能匯出,則需要設定系統引數 查詢系統引數 查詢語句 show parameter deferr...

Oracle空表無法匯出的解決方法

由於oracle 11g的新特性,表資料如果為空,則延遲分配表空間,所以匯出的資料不全 1 設定立刻分配表空間 設定後,後續新增的表即使沒有資料會自動建立表空間,不再延遲建立 alter system set deferred segment creation false 2 查詢當前使用者下的所有...

oracle 11 g, 無法匯出空表解決方案

oracle 11 g挺蛋疼的,用exp導dmp檔案的時候,不能把空表匯出來,在網上查了些解決方案,感覺都不大靠譜,只好醜中選優,選了下面這種方案。select alter table table name allocate extent from user tables where num row...