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

2021-06-18 11:17:05 字數 490 閱讀 1081

oracle 11 g挺蛋疼的,用exp導dmp檔案的時候,不能把空表匯出來,在網上查了些解決方案,感覺都不大靠譜,只好醜中選優,選了下面這種方案。

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

執行上面那條語句,會得到一些alter語句,看語句的意思,應該是給這些空表分配空間。把這些語句匯出來執行,我是匯出的csv檔案,執行的時候,第一行的 'altertable'||table_name||'all 不要。

然後在命令列中執行  expworkbench/workbench@orcl file=d:\orcl.dmp log=d:\exporcl.log  把dmp檔案匯出來

再匯出來的dmp檔案就會包含那些空表了。

匯入的語句格式:imp workbench/workbench@orcl file=orcl.dmp ignore=y full=y

oracle11g無法匯出空表問題

產生原因 oracle11g為了節約空間,對空表不分配segment 解決方法 方法1.用如下語句設定空表可匯出 alter system set deferred segment creation false注意 該值設定後需重新啟動資料庫,讓引數生效。並且該值只對後面新增的表產生作用,對之前建立...

oracle11g匯出空表

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

oracle 11g匯出空表

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