oracle11g無法匯出空表問題

2021-09-26 14:29:49 字數 662 閱讀 999

產生原因:oracle11g為了節約空間,對空表不分配segment

解決方法:

方法1.

用如下語句設定空表可匯出:

alter system set deferred_segment_creation=false
注意:該值設定後需重新啟動資料庫,讓引數生效。並且該值只對後面新增的表產生作用,對之前建立的空表不起作用,仍不能匯出。

方法2.

對需要匯出的表插入一條資料再刪除,此時該錶就產生segment,再匯出時就可以成功匯出。

方法3.

執行sql語句alter table 表名 allocate extent;執行後此表可成功匯出。

若需要將資料庫中的所有空表都匯出,可先執行以下語句

select 'alter table '||table_name||' allocate extent;' from user_tables where num_rows=0 or num_rows is null;
將上面語句查詢出的結果進行複製並執行後 這些空表即可成功匯出。

oracle11g匯出空表

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

oracle 11g匯出空表

oracle 11g 用exp命令匯出庫檔案備份時,發現只能匯出來一部分表而且不提示錯誤,之前找不到解決方案只能把沒匯出來的表重新建建立。後來發現是所有的空表都沒有匯出來。於是想好好查查,因為在以前的10g版本中沒有這樣的問題。查資料發現oracle 11g中有個新特性 新增了乙個引數 deferr...

oracle11g 空表匯出

oracle11g的新特性,資料條數是0時不分配segment,所以就不能被匯出。解決方法 1插入一條資料 或者再刪除 浪費時間,有時幾百張表會累死的。2建立資料庫之前 使用 sql alter system set deferred segment creation false 調整再建表 這兩種...