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

在实际工作中需要把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 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

时间: 2024-10-12 13:50:52

SQL Server 2012大数据导入Oracle的解决方案的相关文章

在SQL Server 2012实现CDC for Oracle

在上篇在SSIS 2012中使用CDC(数据变更捕获)中,介绍了如何在SSIS 2012中使用CDC,本文在此基础上介绍,如何通过Attunity提供的Change Data Capture Designer for Oracle实现对Oracle数据表的变更捕获.同样需要做一些准备工作: 1.配置Oracle数据库为归档模式,并获取浏览日志的指定权限: /* -- ============================================= -- 修改Oracle属性 ---Ge

sql server之批量数据导入

实际应用场景中,有时会需要把一批数据导入数据库.这批数据可能来源于另一个数据源.比较常规的做法是先读取到dataset,然后跑一个循环,每一行拼一句insert into语句,执行之.用过的人会知道,这种导入数据的方法效率十分低下.那么,有没有什么更好的方法呢?答案是有的.使用System.Data.SqlClient.SqlBulkCopy类.我觉得这个应该是在使用sql server资源管理器时,导入数据时所使用的方法.代码如下: ------------------------------

Sql Server 2008 导出数据到Oracle数据库

1 2 3 4 5 选定指定表 6 点击编辑映射 编辑目标数据类型 做一些必要的调整 6.1 源类型 目标类型 sql server 2008              oracle timestamp     date varchar                           varchar2(长度尽量长) number                         number (精度要设置合理) char varchar2(长度设置合理) 还要把 可以设置为NULL都勾选上 7

SQL Server 2012 将数据导出为脚本详细图解

ps:sql server数据库导出为sql脚本好处:占内存小(一般只有几百kb).方便修改.不限制sql server的版本! 1.右键数据库,依次选择:"任务"-"生成脚本",如图: 2.依次点击进行脚本生成,如图: 3.这里记得先不要进行下一步,点开上图中的"高级"选项,找到"要编写脚本的数据的类型",选择"框架和数据"(否则只有框架没有数据)如图: 4.一直下一步直到完成即可!

在SQL Server 2012中实现CDC for Oracle

在上篇在SSIS 2012中使用CDC(数据变更捕获)中,介绍了怎样在SSIS 2012中使用CDC,本文在此基础上介绍.怎样通过Attunity提供的Change Data Capture Designer for Oracle实现对Oracle数据表的变更捕获. 相同须要做一些准备工作: 1.配置Oracle数据库为归档模式.并获取浏览日志的指定权限. /* -- ============================================= -- 改动Oracle属性 ---G

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 1 -使用FOR XML返回XML结果集 XML 介绍 <CustomersOrders> <Customer custid="1" companyname="Customer NRZBB"> <Order orderid="10692" orderdate="2007-10-03T00:00:00&

Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据

原文:Querying Microsoft SQL Server 2012 读书笔记:查询和管理XML数据 2 -使用XQuery 查询XML数据 XQuery 是一个浏览/返回XML实例的标准语言. 它比老的只能简单处理节点的XPath表达式更丰富. 你可以同XPath一样使用.或是遍历所有节点,塑造XML实例的返回等. 作为一个查询语言, 你需要一个查询处理引擎. SQL Server 数据库通过XML数据类型方法的T-SQL 语句来处理XQuery. SQL Server 并不支持所有的X

SQL Server服务器上需要导入Excel数据的必要条件

SQL Server服务器上需要导入Excel数据,必须安装2007 Office system 驱动程序:数据连接组件,或者Access2010的数据库引擎可再发行程序包,这样就不必在服务器上装Excel了.

SQL Server 2012中快速插入批量数据的示例及疑惑

SQL Server 2008中SQL应用系列--目录索引 今天在做一个案例演示时,在SQL Server 2012中使用Insert语句插入1万条数据,结果遇到了一个奇怪的现象,现将过程分享出来,以供有兴趣的同学参考. 附:我的测试环境为:SQL Server 2012,命名实例 Microsoft SQL Server 2012 - 11.0.2100.60 (Intel X86) Feb 10 2012 19:13:17 Copyright (c) Microsoft Corporatio