SQL Server 2012大資料匯入Oracle的解決方案

來源:互聯網
上載者:User

標籤:

在實際工作中需要把SQL Server中的表匯入Oracle。之前嘗試過直接用SQL Server的DTS進行都沒問題。但這次因為資料量在千萬級所以報虛擬記憶體不足。最後通過SQL Server匯出txt檔案和Oracle sqlldr匯入的方案解決。

一.SQL Server匯出txt檔案

方法1.使用DTS進行匯出。

方法2.使用BCP命令進行匯出,具體可以查看園內文章:SQL Server中bcp命令的用法以及資料大量匯入匯出

通過以上方法可以產生txt檔案

 

二.Oracle sqlldr匯入txt檔案

1.建立sqlldr的.ctl檔案,具體參數命令可以查看相關文章:用Oracle sqlldr匯入文字檔TXT 總結  Oracle sqlldr匯入資料使用預設值和提高效能的方法

OPTIONS(skip_index_maintenance=TRUE,direct=true,BINDSIZE=20971520,READSIZE=20971520,ERRORS=-1,ROWS=500000)--unrecoverableload  data --CHARACTERSET AL32UTF8LOAD DATA  INFILE ‘c:\xxxxxe.txt‘                                   ---------資料檔案,即txt檔案  Append INTO TABLE Demo7.TMS_BRANCHCODE2    -----表名,全路徑  FIELDS TERMINATED BY X‘09‘          -----資料用定位字元分割  TRAILING NULLCOLS  (  ID,                         ------表中欄位  Branch_Plant, SO_Number,Trip_Number,Shippment_Date  --"to_date(:Shippment_Date,‘‘‘yyyy-mm-dd hh24:mi:ss‘‘‘)"Sold_to,Sold_to_Name,Ship_to,Ship_to_Name,BarCode_Info,Barcode_Seg_1,Barcode_Seg_2,Barcode_Seg_3,Barcode_Seg_4,Barcode_Seg_5, Last_Updated_Time  --"to_date(:Shippment_Date,‘‘‘yyyy-mm-dd hh24:mi:ss‘‘‘)" )

 

2.運行.ctl檔案匯入資料,開啟CMD運行如下檔案

C:/>sqlldr userid=system/[email protected] serviceName control=c:\xxx.ctl

SQL Server 2012大資料匯入Oracle的解決方案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.