大規模數據 從SQL SERVER導入到ORACLE方法


來源於:http://blog.csdn.net/iitkd/article/details/40394789

來源:一個7G的SQL SERVER .bak文件要導入到Oracle中,經過實驗,完成操作,先記錄操作的過程,供類似的導入導出數據參考。

實驗環境:VMBox虛擬機,Window8.1專業版,SQL SERVER2012,ORACLE 11G,7G 的.bak備份文件

簡要過程:

(1)首先配置環境,然后使用sql server2012導入備份文件,然后可以查看文件中數據庫,表的結構。

表1.1 導入數據庫,表

(2)新建查詢,使用xx命令將數據庫中的cdsgus表導出到test.txt文本。使用xp_cmdshell 和bcp命令完成。

                       exec xp_cmdshell 'bcp shifenzheng.dbo.cdsgus out c:\test.txt -c -T'

提示:

  • b.xp_cmdshell使用是可能出現問題,不存在或高級問題,可以使用下面的命令開啟:

       

[sql]  view plain  copy
 
  1. exec sp_configure 'show advanced options 1'  
  2.   
  3. go  
  4.   
  5. reconfigure  
  6.   
  7. go  
  8.   
  9. exec sp_configure 'xp_cmdshell',1  
  10.   
  11. go  

 

 

 

如果仍然出現xp_cmdShell命令無法使用時,可以通過以下步驟開啟命令:   

       選中對象資源管理器中的連接的服務器,右鍵-->方面-->彈出對話框,在下拉選項中選擇”外圍應用配置器“,設置XPCMDShellEnabled屬性為true;再次嘗試xp_cmdshell命令。

表1.2開啟命令XPCMDShell-方面對話框

 

運行命令,等待一段時間,完成數據庫表的導出,生成test.txt文件,作為導入Oracle數據庫的中間文件。

其中test.txt中僅存有數據,沒有表格的數據結構

 

 

(3)使用sqlldr命令和control.ctl控制文件導入Oracle

  • 首先在Oracle中建立一張表格,表格字段與sql server中的字段完全一樣。
  • 構建control.tct文件,填寫對應的內容。
  • 在cmd命令下,運行sqlldr scott/tiger@orcl control=control.txt命令即可。注意導入的txt,control.txt和當前CMD的工作目錄在同一個地方,路徑問題需要注意。

 

詳細Oracle導入txt文件用法詳見:http://blog.csdn.net/programpoet/article/details/4516377

 

備注:

       使用txt作為中間文件的好處就是,不用必須同時在一台電腦上安裝sql server 和Oracle數據庫,txt文件存放中間結果,可以不同電腦上進行數據的轉移,降低數據轉移對電腦的要求。

      本人就是在虛擬機上進行的數據轉移:兩個win8.1虛擬系統,分別安裝sqlserver 和Oracle數據庫,然后進行數據的導入和導出,降低了虛擬機對空間的要求,我的是7G的數據,第一次嘗試時出現了虛擬機磁盤空間不夠用的情況,安裝數據庫需要磁盤空間,導入數據需要磁盤空間,導出數據也要磁盤的空間。鑒於空間問題,數據庫便分開在兩個虛擬機系統上,txt作為中間傳輸的方式。

         還有就是sql server本身自帶的導入Oracle的組件,使用時出現 了數據鏈接錯誤,說Oracle組件沒有安裝,不知道怎么做了,便采用了上述的方式,完成數據遷移。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM