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

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

时间: 2024-08-30 16:52:31

SQL SERVER导入数据到ORACLE的方法总结的相关文章

关于SQL Loader导入数据到Oracle DB中

问题描述 我现在要导入的数据存在.csv文件中,其中的数据格式是:"##03K9553","","N"这样的,大约有50万笔:第一个问题:我要先将将空格拿掉后在存入DB,下面是我的ControlFile:LOADDATAINFILE"C:File.CSV"intotabletablereplace--fieldsterminatedby','optionallyenclosedby'"'TRAILINGNULLCOL

SQL Server导入导出数据时最常见的一个错误解决方法_MsSql

现在建站主要使用的还是ASP与PHP,这两种语言一般使用的数据库分别为SQL Server和mysql,这两种数据库各有各长处,也说不上谁好谁坏,看个人习惯了. SQL Server 导入和导出向导的作用是将数据从源复制到目标.该向导还可以为您创建目标数据库和目标表.但是,如果必须复制多个数据库或表,或者必须复制其他类型的数据库对象,则应改用复制数据库向导. 在数据库导入导出时总失败,错误信息如下: 复制代码 代码如下: 正在验证 (错误) 消息 错误 0xc0202049: 数据流任务 1:

SQL Server导入导出数据时最常见的一个错误解决方法

现在建站主要使用的还是ASP与PHP,这两种语言一般使用的数据库分别为SQL Server和mysql,这两种数据库各有各长处,也说不上谁好谁坏,看个人习惯了. SQL Server 导入和导出向导的作用是将数据从源复制到目标.该向导还可以为您创建目标数据库和目标表.但是,如果必须复制多个数据库或表,或者必须复制其他类型的数据库对象,则应改用复制数据库向导. 在数据库导入导出时总失败,错误信息如下: 复制代码 代码如下: 正在验证 (错误) 消息 错误 0xc0202049: 数据流任务 1:

oracle和sql server的数据比较

问题描述 oracle和sql server的数据比较 oracle和sql server分别有同样的一堆表,来源一样,但是由于导入导出的时候可能会出错,想设计一个程序比较两个数据库中的那些表的大小,就是想比较两个数据库中具有相同表名的表的行数是否相等,不相等的最好能输出是在oracle的数据量比较多还是sqlserver里面的数据量比较多,并输出成一个文档,最好是excel或者是txt,急,求大神!!!额,不限工具,不过最好用R语言.python.C语言.MATLAB等以便我装逼的语言,万分感

在SQL Server中将数据导出为XML和Json的方法

 有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQL Server的导入导出工具其中BUG还是蛮多的,最简单的办法是BCP.   数据导出为XML     在SQL Server 2005之后提供了一个for xml子句在关系数据库中原生支持XML.通过该命令可以将二维关系结果集转换为XML,通过BCP就可以将数据存为XML了.     例如下面

SQL Server中将数据导出为XML和Json方法分享_MsSql

    有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQL Server的导入导出工具其中BUG还是蛮多的,最简单的办法是BCP.  数据导出为XML     在SQL Server 2005之后提供了一个for xml子句在关系数据库中原生支持XML.通过该命令可以将二维关系结果集转换为XML,通过BCP就可以将数据存为XML了. 例如下面的数

Sql Server 导入另一个数据库中的表数据

在涉及到SQL Server编程或是管理时一定会用到数据的导入与导出, 导入导出的方法有多种,此处以SQL Server导入表数据为例,阐述一下: 1.打开SQL Server Management Studio,在对象资源管理器中,展开"SQL Server 实例"→"数据库"→"你需要导入数据的数据库"节点,单击鼠标右键,选择"任务"→"导出数据"命令.出现导入和导出向导的欢迎界面,单击"下一

在SQL Server中将数据导出为XML和Json的方法_MsSql

    有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQL Server的导入导出工具其中BUG还是蛮多的,最简单的办法是BCP.   数据导出为XML     在SQL Server 2005之后提供了一个for xml子句在关系数据库中原生支持XML.通过该命令可以将二维关系结果集转换为XML,通过BCP就可以将数据存为XML了.     例

从SQL Server数据库转到Oracle数据库的数据脚本处理

在我们很多情况下的开发,为了方便或者通用性的考虑,都首先考虑SQL Server数据库进行开发,但有时候客户的生产环境是Oracle或者其他数据库,那么我们就需要把对应的数据结构和数据脚本转换为对应的数据库,数据结构一般来说,语法都遵循了SQL92的标准,或者我们根据不同的PowerDesigner文件进行生成对应的结构脚本即可,但是实际数据的脚本我们就需要进行一定的处理,以及文本的替换处理了,本文结合Notepad++的文本正则表达式替换,实现一些如日期较为特殊的数据脚本调整,把它从SQL S