因為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...