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.直接调 ...
随机推荐
- Npm包的开发
个人开发包的目录结构 ├── coverage //istanbul测试覆盖率生成的文件 ├── index.js //入口文件 ├── introduce.md //说明文件 ├── lib │ ...
- PHP-解析验证码类--学习笔记
1.开始 在 网上看到使用PHP写的ValidateCode生成验证码码类,感觉不错,特拿来分析学习一下. 2.类图 3.验证码类部分代码 3.1 定义变量 //随机因子 private $char ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(55)-Web打印
系列目录 前言 1.本次主要弥补工作流,用户表单数据的打印 2.使用JQprint做为web打印插件 3.兼容:FireFox,Chrome,IE. 4.没有依赖也没有配置,使用简单 代码下载:htt ...
- jQuery.Ajax IE8 无效(CORS)
今天在开发的时候,遇到一个问题,$.get()在 IE8 浏览器不起作用,但 Chrome,Firefox 却是可以的,网上资料很多,最后发现是 IE8 默认不支持 CORS 请求,需要手动开启下: ...
- 套用JQuery EasyUI列表显示数据、分页、查询
声明,本博客从csdn搬到cnblogs博客园了,以前的csdn不再更新,朋友们可以到这儿来找我的文章,更多的文章会发表,谢谢关注! 有时候闲的无聊,看到extjs那么肥大,真想把自己的项目改了,最近 ...
- Velocity初探小结--Velocity在spring中的配置和使用
最近正在做的项目前端使用了Velocity进行View层的数据渲染,之前没有接触过,草草过了一遍,就上手开始写,现在又回头细致的看了一遍,做个笔记. velocity是一种基于java的模板引擎技术, ...
- jQuery可拖拽3D万花筒旋转特效
这是一个使用了CSS3立体效果的强大特效,本特效使用jQuery跟CSS3 transform来实现在用户鼠标按下拖动时,环形图片墙可以跟随鼠标进行3D旋转动画. 效果体验:http://hovert ...
- 2016/12/28_javascript
今天学习的主要内容: javascript: 1.if语句,switch语句,while循环以及for循环: 1)if语句 if(boolean){}; if(boolean){} else if(b ...
- BPM配置故事之案例3-参与者与数据自动加载
这才过了两天,阿海又来了. 阿海:公司决定改进管理方式,以后物资申请的申请人和申请部门要写具体使用人的名字和部门了. 小明:不是要让我改回去吧? 阿海:那太麻烦了,你能不能把申请人改成选择,选好人自动 ...
- Android中ListView实现图文并列并且自定义分割线(完善仿微信APP)
昨天的(今天凌晨)的博文<Android中Fragment和ViewPager那点事儿>中,我们通过使用Fragment和ViewPager模仿实现了微信的布局框架.今天我们来通过使用Li ...
