SQL SERVER导入数据到ORACLE的方法总结
我们偶尔会有将数据从SQL SERVER导入到ORACLE当中的这种需求,那么这种跨数据库导数有那些方法呢?这些方法又有那些利弊呢? 下面比较肤浅的总结了一些可行的方法。
1:生成SQL脚本然后去ORACLE数据库执行。
CREATE TABLE TEST
(
ID INT ,
NAME VARCHAR(12)
)
INSERT INTO dbo.TEST
SELECT 1001, 'Kerry' UNION ALL
SELECT 1002, 'Jimmy' UNION ALL
SELECT 1003, 'Ken' UNION ALL
SELECT 1004, 'Richard'
SELECT 'INSERT INTO TEST '
+'SELECT ' + CAST(ID AS VARCHAR(12)) +' AS ID,'''
+ NAME + ''' FROM DUAL;'
FROM dbo.TEST
优点:我还真找不出其优点,仅仅作为一种方法归纳在此。
缺点:操作麻烦,每次操作都要写脚本;数据量大时性能非常糟糕。
适用场景:仅仅使用小表、基础数据表。例如省份表之类。它能做到的,SQL SERVER导入导出工具能比其跟方便、快捷的做到。
2:创建链接服务器链接到ORACLE数据库
创建链接到ORACLE数据库的链接服务器非常简单,在此不做过多描述。一般使用这种方式做数据交互的情况较多。
优点:链接服务器创建好后,可以非常方便的使用SQL导入数据到ORACLE。而且可以反复使用。
缺点:需要安装ORACLE CLIENT客户端,而且ORACLE CLIENT客户端工具安装后必须重启服务器使之生效。效率不是最快的。尤其当导入的数据量非常大时,不推荐使用这种方法。
适用场景:适用于系统经常需要在SQL SERVER与ORACLE之间数据交互的场景,这样就可以方便的利用它来导数,而不用为了导数在服务器上装ORACLE CLIENT客户端工具。尤其适合经常需要数据交互的场景。
3:使用SQL SERVER的导入导出工具
SQL Server的导入导出工具(SQL Server Import and Export Data),可以在很多不同数据库之间进行导数。
优点:图形化操作、快捷方便。不需要写代码(或只需要写很少代码)。
缺点:1:效率不高问题,有一次导入70多万数据,耗时非常久。速度非常慢。当然我没有大量测试验证。不知道不同的数据库连接驱动Microsoft OLE DB Provider for Oracle 、Oracle Provide for OLE DB、.Net Framework Data Provider for Oracle之间的效率是否有较大区别。
2:出错时提示信息有时候不明确(出错信息不具体),用户体验非常糟糕。
适用场景:适用于绝大多数数据量不大的场景。尤其适合一次性导数。
4:借助BCP和SQL*LOADER导入数据
通过BCP工具将SQL SERVER中的数据导出为平面文件(Text或CSV格式),然后借助ORACLE的SQL LOADER工具将数据导入数据库。
优点: 效率高、速度快,尤其导数的数据量非常大的情况下。SQL*LOADER的直接路径装载效率非常高:(direct path):采用这种模式,SQLLDR不使用SQL;而是直接格式化数据库块。
缺点:
1:需要写一些脚本。如果有非常多的表需要导数,工作量较大
2:平面文件的格式会导致SQL LOADER装载数据出现较多小问题。如果你精通SQL*LOADER的话,那么就可以避免踩到那些坑。
适用场景:大数据的导入导出。
SQL SERVER导入数据到ORACLE的方法总结的更多相关文章
- 数据库迁移(SQL SERVER导入数据到MySql)
地址:http://blog.csdn.net/jiaohougenyang/article/details/44937801 背景:项目最开始时使用的是SQL Server数据库,业务需求现要将数据 ...
- SQL Server导入数据时“启用标示插入”详解
在SQL Server中导入数据时,会有一个"启用标示插入"的选项,突然间懵逼了,这到底啥意思?我选与不选这个选项,结果好像没区别!不科学啊这,"存在即合理", ...
- 阿里云RDS数据库sql server 导入数据并添加作业小结
在阿里云购买ECS服务器和RDS数据库时,要注意网络类型要一致,最好都是VPC,否则ECS不能在内网访问RDS,只能从外网访问:在RDS控制台左侧,数据库安全性的IP白名单中添加ECS外网IP:在数据 ...
- SQL server 导入数据 (excel导入到SQL server数据库)
打开数据库SQL server ,右键数据库,任务,导入数据 点击下一步 选择数据源类型 选择路径,点击下一步 选择将要生成的类型 选择登陆方式 选中,点击下一步 点击编辑映射可以修改将要生成的表,点 ...
- SQL Server 导入数据失败:无法在只读列“Id”中插入数据
解决方案: 在数据库导入"选择源表和源视图"->点击对应表后的“编辑映射”按钮->勾选“启用标识列插入”->导入即可.
- 不同版本的SQL Server之间数据导出导入的方法及性能比较
原文:不同版本的SQL Server之间数据导出导入的方法及性能比较 工作中有段时间常常涉及到不同版本的数据库间导出导入数据的问题,索性整理一下,并简单比较下性能,有所遗漏的方法也欢迎讨论.补充. 0 ...
- SQL Server导入导出不丢主键和视图的方法
SQL Server导入导出 SQL Server 导入导出 工具/原料 使用Microsoft SQL Server Management Studio 导入导出数据. 直接使用Microsoft ...
- Sql Server删除数据表中重复记录 三种方法
本文介绍了Sql Server数据库中删除数据表中重复记录的方法. [项目]数据库中users表,包含u_name,u_pwd两个字段,其中u_name存在重复项,现在要实现把重复的项删除![分析]1 ...
- c#直接调用ssis包实现Sql Server的数据导入功能
调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...
随机推荐
- async & await 的前世今生(Updated)
async 和 await 出现在C# 5.0之后,给并行编程带来了不少的方便,特别是当在MVC中的Action也变成async之后,有点开始什么都是async的味道了.但是这也给我们编程埋下了一些隐 ...
- linux基础学习笔记
我用的是centOS7.0版本的系统.linux的shell终端窗口类似于wind的command窗口 shell命令提示符格式:用户名@主机名:目录名 提示符 @前面的是已登录的用户名,@之后的为计 ...
- 高大上的微服务可以很简单,使用node写微服务
安装 npm install m-service --save 使用 编写服务处理函数 // dir1/file1.js // 使用传入的console参数输出可以自动在日志里带上request id ...
- 协议森林16 小美的桌号(DHCP协议)
作者:Vamei 出处:http://www.cnblogs.com/vamei 转载请先与我联系. DHCP协议用于动态的配置电脑的网络相关参数,如主机的IP地址,路由器出口地址.DNS域名服务器地 ...
- JS魔法堂:不完全国际化&本地化手册 之 理論篇
前言 最近加入到新项目组负责前端技术预研和选型,其中涉及到一个熟悉又陌生的需求--国际化&本地化.熟悉的是之前的项目也玩过,陌生的是之前的实现仅仅停留在"有"的阶段而已. ...
- 【深入Java虚拟机】之四:类加载机制
类加载过程 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载.验证.准备.解析.初始化.使用和卸载七个阶段.它们开始的顺序如下图所示: 其中类加载的过程包括了加载.验 ...
- 创建ABPboilerplate模版项目
本文是根据角落的白板报的<通过ABPboilerplate模版创建项目>一文的学习总结,感谢原文作者角落的白板报. 1 准备 开发环境: Visual Studio 2015 update ...
- Canvas讲解
1.Canvas是什么? 简单地说canvas是画布,可以进行画任何的线.图形.填充等一系列的操作,而且操作的画图就是js, 提供简单的二维矢量绘图. 2.步骤: <canvas id=&quo ...
- DirectX Graphics Infrastructure(DXGI):最佳范例 学习笔记
今天要学习的这篇文章写的算是比较早的了,大概在DX11时代就写好了,当时龙书11版看得很潦草,并没有注意这篇文章,现在看12,觉得是跳不过去的一篇文章,地址如下: https://msdn.micro ...
- SqlServer简单数据分页
手边开发的后端项目一直以来都用的.NET MVC框架,访问数据库使用其自带的EF CodeFirst模式,写存储过程的能力都快退化了 闲来无事,自己写了条分页存储过程,网上类似的文章多的是,这里只列了 ...