zoukankan      html  css  js  c++  java
  • 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之间的效率是否有较大区别。

    clipboard

         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的话,那么就可以避免踩到那些坑。

    适用场景:大数据的导入导出。

  • 相关阅读:
    什么是级联
    @GeneratedValue
    Spring Data JPA中CrudRepository与JpaRepository的不同
    Spring Data JPA的方法命名规则
    C/S架构的渗透测试-请求加解密及测试
    各类Fuzz字典
    Nessus8.11破解
    xss实验1-20writeup
    IIS短文件名漏洞
    Linux挂载exfat文件系统的U盘
  • 原文地址:https://www.cnblogs.com/kerrycode/p/4997812.html
Copyright © 2011-2022 走看看