码迷,mamicode.com
首页 > 数据库 > 详细

SQL Server 2012大数据导入Oracle的解决方案

时间:2015-07-16 13:32:00      阅读:314      评论:0      收藏:0      [点我收藏+]

标签:

在实际工作中需要把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)
--unrecoverable
load  data 
--CHARACTERSET AL32UTF8
LOAD DATA  
INFILE c:\xxxxxe.txt                                   ---------数据文件,即txt文件  
Append INTO TABLE Demo7.TMS_BRANCHCODE2    -----表名,全路径  
FIELDS TERMINATED BY X09          -----数据用制表符分割  
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/manager@ serviceName control=c:\xxx.ctl

技术分享

SQL Server 2012大数据导入Oracle的解决方案

标签:

原文地址:http://www.cnblogs.com/colder/p/4650844.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!