程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 11g Oracle導出表不導出數據默認為空表的解決方法,11goracle

11g Oracle導出表不導出數據默認為空表的解決方法,11goracle

編輯:Oracle教程

11g Oracle導出表不導出數據默認為空表的解決方法,11goracle


11g oracle導出表時會默認不導出數據為空

1、Oracle11g默認對空表不分配segment,故使用exp導出Oracle11g數據庫時,空表不會導出。
2、設置deferred_segment_creation 參數為FALSE後,無論是空表還是非空表,都分配segment。

在sqlplus中,執行如下命令:
SQL>alter system set deferred_segment_creation=false; 查看:
SQL>show parameter deferred_segment_creation;
該值設置後只對後面新增的表產生作用,對之前建立的空表不起作用。

解決方案:

1.用以下這句查找空表並生成執行命令

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

2.將查詢結果的內容導出,執行導出的語句。

3.然後再用exp的方式去導出數據庫,就可以完整的導出包括空表的數據庫。


oracle11g導出數據庫時怎設置把空表也導出

1 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:\daochu.dmp中
exp system/manager@TEST file=d:\daochu.dmp full=y
2 將數據庫中system用戶與sys用戶的表導出
exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
 

oracle11g執行了網上所說的那些步驟之後,為何空表還是不導出?球解

建議你用expdp導出吧 別用oracle 11G 對於空表默認是不分配段的,所以用exp導出的時候就沒有導出。用法參照help,網上一大把命令。

使用expdp要先在數據庫中創建directory,並給相應的用戶read,write權限.
SQL>create directory dmpdir as '/u01/dmdir';
SQL>grant read,write on directory to system;
expdp system/pw schemas=test directory=dmpdir dumpfile=test_1.dmp,test-2t.dmp logfile=exp-2012-11-testt.log exclude=STATISTICS parallel=2
可以並行導出
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved