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

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

相关文章
|
4月前
|
SQL Oracle 关系型数据库
Oracle数据库创建表空间和索引的SQL语法示例
以上SQL语法提供了一种标准方式去组织Oracle数据库内部结构,并且通过合理使用可以显著改善查询速度及整体性能。需要注意,在实际应用过程当中应该根据具体业务需求、系统资源状况以及预期目标去合理规划并调整参数设置以达到最佳效果。
353 8
|
8月前
|
SQL 数据采集 关系型数据库
实现MySQL与SQL Server之间数据迁移的有效方法
总的来说,从MySQL到SQL Server的数据迁移是一个涉及到很多步骤的过程,可能会遇到各种问题和挑战。但只要精心规划、仔细执行,这个任务是完全可以完成的。
591 18
|
9月前
|
Oracle 安全 关系型数据库
【Oracle】使用Navicat Premium连接Oracle数据库两种方法
以上就是两种使用Navicat Premium连接Oracle数据库的方法介绍,希望对你有所帮助!
1752 28
|
8月前
|
SQL Java 数据库连接
Java中实现SQL分页的方法
无论何种情况,选择适合自己的,理解了背后的工作原理,并能根据实际需求灵活变通的方式才是最重要的。
225 9
|
9月前
|
SQL 关系型数据库 MySQL
【MySQL】SQL分析的几种方法
以上就是SQL分析的几种方法。需要注意的是,这些方法并不是孤立的,而是相互关联的。在实际的SQL分析中,我们通常需要结合使用这些方法,才能找出最佳的优化策略。同时,SQL分析也需要对数据库管理系统,数据,业务需求有深入的理解,这需要时间和经验的积累。
320 12
|
9月前
|
SQL 关系型数据库 MySQL
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL 数据库 SQL 语句调优方法详解(2-1)
本文深入介绍 MySQL 数据库 SQL 语句调优方法。涵盖分析查询执行计划,如使用 EXPLAIN 命令及理解关键指标;优化查询语句结构,包括避免子查询、减少函数使用、合理用索引列及避免 “OR”。还介绍了索引类型知识,如 B 树索引、哈希索引等。结合与 MySQL 数据库课程设计相关文章,强调 SQL 语句调优重要性。为提升数据库性能提供实用方法,适合数据库管理员和开发人员。
|
10月前
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
256 16
|
9月前
|
SQL Oracle 关系型数据库
解决大小写、保留字与特殊字符问题!Oracle双引号在SQL中的特殊应用
在Oracle数据库开发中,双引号的使用是一个重要但易被忽视的细节。本文全面解析了双引号在SQL中的特殊应用场景,包括解决标识符与保留字冲突、强制保留大小写、支持特殊字符和数字开头标识符等。同时提供了最佳实践建议,帮助开发者规避常见错误,提高代码可维护性和效率。
337 6
|
10月前
|
SQL Oracle 关系型数据库
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法
【YashanDB知识库】共享利用Python脚本解决Oracle的SQL脚本@@用法

推荐镜像

更多