Oracle11G 命令列匯出表不全解決

2022-06-15 21:27:23 字數 742 閱讀 6518

因為oracle11g有乙個新特性,命令列exp只會匯出有分配過segment的表,如果資料庫中的表資料條數是0時不分配segment,所以就不能被匯出解決這個問題有很多方法,結合網上的和自己的實踐,給出我個人使用的解決方法,附帶一些小技巧...

修改deferred_segment_creation 為false 來禁用這個功能,但是對已經存在的table不受影響,該修改保證只對以後建立的table 生效

alter system set deferred_segment_creation=false;

先查詢一下哪些表是空的:

select table_name from user_tables where num_rows=0;

下面我們通過select 來生成alter語句

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

這句話的作用,是生成一些語句,幫助我們把上面的空表分配segment,所以我們要執行下面的結果sql語句

這裡有個小技巧,加入查詢出來有幾w條記錄呢?難道一條一條執行嗎?

我們可以這樣

點選匯出結果集,生成乙個sql file

可以得到如圖這樣的結果,通過查詢替換把公共的 insert into user_tables ('altertable'||table_name||'all)、values ('、');都替換成空字元,然後執行這些語句

oracle 11g 命令 匯入 匯出表

資料匯出 1 將資料庫test完全匯出,使用者名稱system 密碼manager 匯出到d daochu.dmp中exp system manager test file d daochu.dmp 2 將資料庫中system使用者與sys使用者的表匯出exp system manager test...

oracle11g匯出空表

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

oracle 11g匯出空表

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