大规模数据 从SQL SERVER导入到ORACLE方法
来源于:http://blog.csdn.net/iitkd/article/details/40394789
来源:一个7G的SQL SERVER .bak文件要导入到Oracle中,经过实验,完成操作,先记录操作的过程,供类似的导入导出数据参考。
实验环境:VMBox虚拟机,Window8.1专业版,SQL SERVER2012,ORACLE 11G,7G 的.bak备份文件
简要过程:
(1)首先配置环境,然后使用sql server2012导入备份文件,然后可以查看文件中数据库,表的结构。
表1.1 导入数据库,表
(2)新建查询,使用xx命令将数据库中的cdsgus表导出到test.txt文本。使用xp_cmdshell 和bcp命令完成。
exec xp_cmdshell 'bcp shifenzheng.dbo.cdsgus out c:\test.txt -c -T'
提示:
- b.xp_cmdshell使用是可能出现问题,不存在或高级问题,可以使用下面的命令开启:
- exec sp_configure 'show advanced options 1'
- go
- reconfigure
- go
- exec sp_configure 'xp_cmdshell',1
- go
如果仍然出现xp_cmdShell命令无法使用时,可以通过以下步骤开启命令:
选中对象资源管理器中的连接的服务器,右键-->方面-->弹出对话框,在下拉选项中选择”外围应用配置器“,设置XPCMDShellEnabled属性为true;再次尝试xp_cmdshell命令。
表1.2开启命令XPCMDShell-方面对话框
运行命令,等待一段时间,完成数据库表的导出,生成test.txt文件,作为导入Oracle数据库的中间文件。
其中test.txt中仅存有数据,没有表格的数据结构。
(3)使用sqlldr命令和control.ctl控制文件导入Oracle
- 首先在Oracle中建立一张表格,表格字段与sql server中的字段完全一样。
- 构建control.tct文件,填写对应的内容。
- 在cmd命令下,运行sqlldr scott/tiger@orcl control=control.txt命令即可。注意导入的txt,control.txt和当前CMD的工作目录在同一个地方,路径问题需要注意。
详细Oracle导入txt文件用法详见:http://blog.csdn.net/programpoet/article/details/4516377
备注:
使用txt作为中间文件的好处就是,不用必须同时在一台电脑上安装sql server 和Oracle数据库,txt文件存放中间结果,可以不同电脑上进行数据的转移,降低数据转移对电脑的要求。
本人就是在虚拟机上进行的数据转移:两个win8.1虚拟系统,分别安装sqlserver 和Oracle数据库,然后进行数据的导入和导出,降低了虚拟机对空间的要求,我的是7G的数据,第一次尝试时出现了虚拟机磁盘空间不够用的情况,安装数据库需要磁盘空间,导入数据需要磁盘空间,导出数据也要磁盘的空间。鉴于空间问题,数据库便分开在两个虚拟机系统上,txt作为中间传输的方式。
还有就是sql server本身自带的导入Oracle的组件,使用时出现 了数据链接错误,说Oracle组件没有安装,不知道怎么做了,便采用了上述的方式,完成数据迁移。
大规模数据 从SQL SERVER导入到ORACLE方法的更多相关文章
- SQL SERVER导入数据到ORACLE的方法总结
我们偶尔会有将数据从SQL SERVER导入到ORACLE当中的这种需求,那么这种跨数据库导数有那些方法呢?这些方法又有那些利弊呢? 下面比较肤浅的总结了一些可行的方法. 1:生成SQL脚本然后去OR ...
- 用代码从文件中导入数据到SQL Server
引言 导入数据到SQL Server 是常见的需求,特别是定期导入这种需求. 对于定期导入主要有以下几种方式可选择: Bulk Insert Bcp Utility OpenRowSet 写程序导入( ...
- Excel导入数据到Sql server 中出错:“文本被截断,或者一个或多个字符在目标代码页中没有匹配项”
从Excel导入数据到Sql server 时,由于表中的数据有的很长,导入时出现如下错误(如果数据不是很长,255内以内,则不会出现错误): 出错原因: SQL Server的导入导出为了确定数据表 ...
- 使用T-SQL导入多个文件数据到SQL Server中
在我们的工作中,经常需要连续输入多个文件的数据到SQL Server的表中,有时需要从相同或者不同的目录中,同时将文件中的数据倒入.在这篇文章中,我们将讨论如何同时把一个目录中的文件的数据倒入到SQL ...
- 常见SQL Server导入导出数据的几个工具
摘自:http://www.cnblogs.com/chenxizhang/archive/2011/06/09/2076542.html 在我们的日常工作中,与数据库打交道的机会越来越多.这一篇文章 ...
- Sql Server 导入还有一个数据库中的表数据
在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例.阐述一下: 1.打开SQL Server Management ...
- 【SQL Server数据迁移】64位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件, 需要用不同的驱动程序来实现. 在64位的机 ...
- 【SQL Server数据迁移】32位的机器:SQL Server中查询ORACLE的数据
从SQL Server中查询ORACLE中的数据,可以在SQL Server中创建到ORACLE的链接服务器来实现的,但是根据32位 .64位的机器和软件,需要用不同的驱动程序来实现. 在32位的机器 ...
- EXCEL导入数据到SQL SERVER 2008
项目中需要导入excel到SQL SERVER数据库 总是报截断, 本质问题是,SQL SERVER导入程序是根据EXCEL的第一行记录 (非标题行)来决定数据长度的 碰到这个问题,可以伪造第一行,然 ...
随机推荐
- Visual Studio 中的快捷键
VS中常用快捷键 Ctrl+K+D:快速对齐代码 Ctrl+E+D:快速对齐代码 Ctrl+Z:撤销 Ctrl+S:保存 Ctrl+Shift+S:保存所有 Ctrl+J:快速弹出智能提示 Shift ...
- [转]Membership 到 .NET4.5 之 ASP.NET Identity
本文转自:http://www.cnblogs.com/jesse2013/p/membership-part3.html 我们前面已经讨论过了如何在一个网站中集成最基本的Membership功能,然 ...
- pyenv 使用简介
pyenv 是一个 python 版本管理工具,可以方便用户在不同的 python 版本间切换,例如我的电脑里默认的 python 是 2.6, 但我还想装 2.7 3.5 等.另有一个名为 pyen ...
- POJ 1066 Treasure Hunt【线段相交】
思路:枚举四边墙的门的中点,与终点连成一条线段,判断与其相交的线段的个数.最小的加一即为答案. 我是傻逼,一个数组越界调了两个小时. #include<stdio.h> #include& ...
- [转]ASP.NET MVC3 + EF 性能优化解决方案以及最优架构
[集思广议] 我们用 asp.net mvc3 + ef 做了一个网站,现在是内测阶段,发现打开速度非常慢.首页打开(无缓存)都在5-6s以上(测试环境:程序和db都在本机),请问各位 mv ...
- [No000056]你无法真正占有一个人,包括你的爱人,先生或太太、小孩,以及你自己....
从一出生,我们的双手就握的紧紧的,好像深知自己会失去什么 很多人迷信多子多孙才是福,老来才有依靠,但太多新闻告诉我们,很多人老了,子孙为了分家产,反而让他生不如死,死了还无法入土为安. 现实也告诉我们 ...
- Eclipse代码追踪功能说明
在使用Java编写复杂一些的程序时,你会不会常常对一层层的继承关系和一次次方法的调用感到迷惘呢?幸亏我们有了Eclipse这么好的IDE可以帮我们理清头绪--这就要使用Eclipse强大的代码追踪功能 ...
- virtual box使用
1.工具栏菜单显示 用的是mac电脑.开始发现分辨率小,选了视图->全屏模式的菜单之后发现工具栏菜单不见了. 解决办法:用一个外置键盘,右ctrl+c进行恢复 virtualBox菜单栏和状态栏 ...
- Android中实现如下多语言选择Radiobutton效果
手边的samsung手机设置多语言的方式一般是点击设置多语言的一栏后进入到多语言选择界面,选择完成之后当前的语言环境用小字方式直接显示在设置多语言栏的下方.另一种选择多语言的方式如上图所示,我也在系统 ...
- ubuntu下nginx+php5的部署
ubuntu下nginx+php5环境的部署和centos系统下的部署稍有不同,废话不多说,以下为操作记录:1)nginx安装root@ubuntutest01-KVM:~# sudo apt-get ...