• 大规模数据 从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: est.txt -c -T'

    提示:

    • b.xp_cmdshell使用是可能出现问题,不存在或高级问题,可以使用下面的命令开启:

           

    [sql] view plain copy
     
    1. exec sp_configure 'show advanced options 1'  
    2.   
    3. go  
    4.   
    5. reconfigure  
    6.   
    7. go  
    8.   
    9. exec sp_configure 'xp_cmdshell',1  
    10.   
    11. 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组件没有安装,不知道怎么做了,便采用了上述的方式,完成数据迁移。

  • 相关阅读:
    可复用的WPF或者Silverlight应用程序和组件设计(1)——应用程序级别
    优化网站设计(一):减少请求数
    可复用的WPF或者Silverlight应用程序和组件设计(5)——布局重用
    演讲时经常用到的几个小工具介绍
    谈一谈职业素养
    优化网站设计(三):对资源添加缓存控制
    可复用的WPF或者Silverlight应用程序和组件设计(4)——外观级别
    如何在ViewModel中正确地使用Timer(定时器)
    一把锋利的匕首:利用数据绑定语法糖为Flash应用提供富JS接口
    一句话总结.Net下struct和class内存分配方面的区别
  • 原文地址:https://www.cnblogs.com/ys-wuhan/p/6043911.html
Copyright © 2020-2023  润新知