解決oracle中如何匯出空表的問題

2021-07-05 08:39:45 字數 843 閱讀 5348

匯出oracle的dmp檔案,再重新進行匯入時,會有很多警告

可能是沒有匯出空表,導致dmp檔案中缺失了一部分表結構,可能對已存在的表產生了影響

方法一在圖形工具中,如sqldeveloper,pl/sqldeveloper執行

在當前使用者下

1、select 'alter table '||table_name||' allocate extent;' from user_tables

2、將執行結果,複製出來,放入到sql指令碼中,全部執行

**見到的

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

這個語句不太準確

需要了解user_tables中的num_rows屬性

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

在sqlplus中,執行如下命令:

sql>alter system set deferred_segment_creation=false;

檢視:sql>show parameter deferred_segment_creation;

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

oracle 匯出空表

資料庫備份 空表不能匯出的問題處理 設定deferred segment creation 引數 設定deferred segment creation 引數為false來禁用 段推遲建立 也就是直接建立segment 無論是空表還是非空表,都分配segment。在sqlplus中,執行如下命令 s...

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

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

解決oracle11g 空表不能exp匯出的問題

在使用exp備份資料庫,然後使用imp匯入的時候出現了好多表或者檢視不存在的錯誤資訊。究其原因,是11g中增加了乙個新的特性 資料條數是0時不分配segment,所以就不能被匯出。解決思路 就是向空表中增加一行資料。但是如果有很多空表,一行一行的匯入就好出現問題。下面是終極解決方案 在命令列執行 s...