SQL Server数据导入到Oracle中的方法

合集下载

sqlserver到oracle数据无损迁移

sqlserver到oracle数据无损迁移

sqlserver到oracle数据无损迁移编者:liuli10@版本:V1.7最后修订日期:2015-11-21第一章简介1.1数据迁移随着时代发展数据越来越被重视,而很多时候,当系统需要更新换代的时候,升级后系统所是有的数据库与当前系统的数据库并不一致,此时不仅需要数据割接,最重要的是:如何能将老系统中的数据无损的割接到新系统、新数据库中。

因此,结合项目实战经验,针对从windows平台下数据库sqlserver到linux平台下oracle数据库的数据无损迁移进行总结。

1.2数据库简介一般此处会有很多数据库以及出品公司的历史以及发展历程,在编者看来然而并没有什么大用途,百度百科都可以搜索的到,因此本章结束,直接进入实战总结环节。

第二章sqlserver数据导出2.1sqlserver数据导出命令当然不可否认windows为sqlserver提供了强大的图形化平台,导出数据变得只需要点一点就能完成,然而这样的数据导出对于大批量有要求的操作,是极其劳神伤财的,因此,必须要通过命令行进行格式化导出,因此,这里介绍sqlserver 本机数据库导出命令。

2.1.1bcp命令以及参数介绍/liyanmingkong/article/details/6087674/uid-25472509-id-4304562.html/link?url=WV2JJM4JHxR7Qct8rr_-499zPc3aP_7E5rOt5l yEnG_Mj_tE9_-ZN1JPE2Vc2wRpkO8QkNGNLVznDfMgniCOnxXhK5jQppNpZk8 Jo1x8o23为了将文档尽可能精简,bcp命令的参数以及介绍请自行去以上任意网址查询。

或者自行baidu或者google搜索。

2.2实战语句解析实战语句为:bcp"select*from gwbnboss.dbo.ACCOUNT_BUSINESS"queryout "C:\Users\liuli9\Desktop\sqlserverdata_mov\textfile\ACCOUNT_BUSINESS.txt"-c -r"{#$&}"-t"{@#$}"-S"127.0.0.1"-U"数据库用户名"-P"密码"最终导出的结果存在于C:\Users\liuli9\Desktop\sqlserverdata_mov\textfile\ACCOUNT_BUSINESS.txt 文件中,当出现“{#$&}”时表示接下来是下一行数据,出现“{@#$}”时表示接下来是下一列数据。

将SQLSERVER中的数据同步到ORACLE中

将SQLSERVER中的数据同步到ORACLE中

如何将SQLServer2005中的数据同步到Oracle中有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。

不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。

假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。

1.在Oracle中建立对应的contract 和contract_project表,需要同步哪些字段我们就建那些字段到O racle表中。

这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:SELECT*FROM msdb.dbo.MSdatatype_mappingsSELECT*FROM msdb.dbo.sysdatatypemappings来查看SQLServer和其他数据库系统的数据类型对应关系。

第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。

根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。

ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar NCHAR-141ORACLE nchar NCLOB NULL01ORACLE ntext NCLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar NCLOB NULL01ORACLE nvarchar NVARCHAR2 -141ORACLE nvarchar(max) NCLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname NVARCHAR2 12841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml NCLOB NULL01ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar CHAR-141ORACLE nchar CLOB NULL01ORACLE ntext CLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar CLOB NULL01ORACLE nvarchar VARCHAR2-141ORACLE nvarchar(max) CLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname VARCHAR212841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml CLOB NULL01ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar NCHAR-141ORACLE nchar NCLOB NULL01ORACLE ntext NCLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar NCLOB NULL01ORACLE nvarchar NVARCHAR2 -141ORACLE nvarchar(max) NCLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname NVARCHAR2 12841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml NCLOB NULL012.建立链接服务器。

Sql server 导入至 Oracle 具体操作经验

Sql server 导入至 Oracle 具体操作经验

Sql Server 支持向Oracle中导入数据,以下以身份证号导入到数据库为例1、先在oracle数据库中建立一个临时表包含2列,1列学工号、1列身份证号。

create table cc as select outid as bh,idcardno as sfz from base_customers/delete from cc/执行完毕后,记得要提交!2、新建EXCEL 表格,表格中有2列,如下:在该表格中,将人员信息导入至EXCEL表格中。

因为SQL2000 EXCEL导入只支持EXCEL97-2003,因此新建EXCEL表格必须是2003格式的(扩展名为xls)3、通过Sqlserver导入导出工具将EXCEL数据导入至Sqlserver中,并将导入完成的表格名称修改成与Oracle库中一样的表名称CC选择导入数据选择数据源选择导入目标一直点击下一步,直至完成后,将数据库中新导入的表格重新命名成CC4、本机必须要安装Oracle客户端,在控制面板—管理工具—数据源建立一个ODBC数据源。

打开数据源,点击添加按照下面的选项选择,点击完成按照下面的选项选择,出现下面的界面:5、将Sql server 数据导入到 Oracle 中导出数据导出数据点击下一步完成后,出现如下界面点击下一步,一直到出现以下界面:sql server 向Oracle导出时一定要下拉选择表一直点击下一步,直至完成后,完成数据导入!6、最后一步执行身份证修改语句。

执行完成记得提交!update base_customers set (idcardno)=(SELECT bh FROM cc WHERE base_customers.outid = cc.bh)。

sqlserver数据导入oracle

sqlserver数据导入oracle

需要用到power builder工具,具体操作方法如下:先打开PB,新建workspace,如图:起好名字之后,可以看到新的workspace已经建成了:点击tools-database painter,如图:之后会出现如下界面:点击ODB ODBC 添加相应数据源,如图:在出现的对话框中,选择“用户数据源”或“系统数据源”,下一步,如图:选择数据源类型,下一步:数据源的名称起相应的数据库名即可(也可以随便起),服务器名localhost,下一步,如图:登录方式,默认,或者选择sql登录方式都可以:默认数据库选择目标数据库,下一步:默认点击完成:至此,sqlserver数据源创建完成。

Oracle数据源的创建方法——数据源类型同上:驱动程序二选一:数据源名字随意,TNS Service Name选择目标oracle数据库,User id为相应用户名。

点击“OK”,oracle的数据源也创建完成。

数据源创建完成之后,要在ODB ODBC下创建profile,如下:Profile name直接用数据库的名字命名就可以,数据源分别选择刚刚创建的sqlserver和oracle 数据源,用户名密码作相应输入,两个profile的创建就完成了。

Sqlserver和oracle之间的数据互联要在application中进行,在workspace中新建target,在target选项卡下,选择application,OK:名字随意,finish:完成之后,继续在创建完成后的application右键,New:在出现的对话框中选择Database-Data Pipeline:选好源数据和目标数据,OK:在出现的对话框中,PB会将数据库中所有的表列出:选择相应的表,PB会进一步将表中所含的列列出:选择好了表,以及要导入的列后,OK:这样就可以做数据的互导工作了。

注意:对于到导入到oracle中的数据,在sqlserver中为float类型的,在oracle中要改为number,在sqlserver中为char类型的,在oracle中要改为varchar类型。

SqlServer2005移植到Oracle

SqlServer2005移植到Oracle

从SQL server 2005中移植数据到Oracle 10g1.移植前准备在移植前,需要安装必需的各种软件,如下:(1).安装好SQL server 2005的补丁包和SP2。

(2).安装Oracle安装包里的oracle客户端浏览器(PL/SQL Developer)。

(可以根据需要按照汉化补丁,汉化包不安装也可)(3).硬件要求:在Oracle数据库所在的硬盘保持足够剩余空间(至少有2GB的空间剩余);建议在启用Oracle服务时机器的内存不少于2GB。

没有特别说明的情况下,本文的数据移植是针对普通的属性数据。

2.移植2.1.创建数据库打开Oracle中的Database Configuration Assistant进行数据库的创建,如图所示:图表1 打开Database Configuration Assistant进入Database Configuration Assistant后点击“下一步”,然后出现如图表2所示的界面,选择“创建数据库”后点击“下一步”:如图表3所示选择第一个“一般用途”然后点击下一步:图表3 选择模板如图标2所示在创建数据库过程中的第3步,在“全局数据库名”中输入数据库名称,SID则会自动默认为全局数据库名,然后点击“下一步”;点击如图表5所示界面中的“确定”按钮系统就开始创建数据库了。

图表5图表6 正在传教数据库最后点击如图表4所示中的“退出”按钮就创建数据库完成了。

图表7 创建数据库完成2.2.登录Oracle打开PL/SQL Developer并用system(数据库默认的用户名)用户身份登录到XQ2DSGN并选择连接为SYSDBA,如图所示:图表8 登录到PLSQL2.2.1.创建表空间创建表空间的sql语句:SQL>create tablespace xq2dsgn datafile 'G:\oracle\product\10.2.0\ oradata\xq2dsgn\xq2dsgn.dbf' size 2048m autoextend on next 10m maxsize unlimited ;(参考:通过PL/SQL Developer登录到Oracle数据库上后,打开菜单:文件/新建/命令窗口,打开一个命令窗口然后在该命令窗口中执行脚本创建和删除表空间,新建用户和授权的操作,如图所示:图表9 打开命令窗口创建表空间Sql>create tablespace xqds2gn datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' size 200m autoextend on next 10m maxsize unlimited;Sql>alter database datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' autoexte nd on;1 DATAFILE: 表空间数据文件存放路径2 SIZE: 起初设置为200M3 UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k4 空间名称xq2dsgn 与数据文件名称xq2dsgn.dbf 不要求相同,可随意命名.5 AUTOEXTEND ON/OFF表示启动/停止自动扩展表空间6alter database datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' resize 500 m;//手动修改数据文件大小为500M图表10 表空间创建完成删除表空间语句如下:DROP TABLESPACE xq2dsgn INCLUDING CONTENTS AND DATAFILES;2.2.2.创建用户1.建立用户并为用户指定缺省的永久表空间和临时表空间SQL> create user xq2dsgn identified by xq2dsgndefault tablespace xq2dsgntemporary tablespace temp;用户已创建。

Sql Server导出数据至Oracle方法

Sql Server导出数据至Oracle方法

Sql Server导出数据至Oracle方法利用Sql Server的DTS导出首先,也是最重要的,一定要先设置好要导入到的oracle所对应的数据源驱动。

也就是在Windows下创建一个ODBC数据源: 控制面板——管理工具——数据源(ODBC),在"系统DSN” 项卡中点击添加按钮,选择相关Oracle驱动(数据源需要用到oracle的连接服务,所以如果sqlserver与oracle不在同一台机器上的话,要在sql server所在机器上装oracle客户端,并用oracle客户端建一个连接到oracle数据库的服务,建odbc数据源时,会让你选择该服务)。

这一点如果你不配置,那么在后面的Sql Server DTS导出数据到oracle时候,它会有一个默认的数据源驱动,但可能版本太早,里面的字段和oracle 10g有些不兼容,这样会造成后面在导出数据的时候出现一些字段转换失败之类的错误。

下面以我在本机上的操作截图说明一下:(1)右击数据库,任务--->导出数据:(2)选择要导出的数据源,如果针对本机数据库,按照默认选项即可,点击下一步:(3)选择要导入的数据源,这一块就是要注意的地方,oracle 10g 数据源在此处为Oracle provide for OLE DB(安装了不同的oracle,数据源驱动可能不一样,这里不是绝对的),如果没有自己注册oracle 10g数据源的话,它上面默认的有一个Microsoft OLE DB Provider for Oracle,切记一定要自己配置。

注意选上"允许密码保存"复选框,之后测试是否连接成功。

(5)点击下一步,出现如下视图(6)选中要导入的表,然后把目标表中的名称改为大写,这块最好也自己配置一些,选中表,点击“编辑映射”,对里面Sql Server自动生成的和oracle 10g字段对应关系中不合理的字段进行修改,在oracle 10g里面一般只有Int字段有问题,而默认的oracle注册驱动对于大数据类型nclob,和nvarchar2都多少有些问题,修改以后点击“编辑SQL”按钮,生成最终合适的sql语句。

SQL Server全库导入到ORACLE

MS SQL Server 全库导入到ORACLE作者:Microlong•硬件环境:1、CPU P4 1,.7 Memory : 256•硬件环境:1、Windows 2000 A S +ORACLE 9I +MS SQL Server ( 企业版)2、ORACLE安装路径为:C:\ORACLE•实现方法:1、打开MS SQL Server 企业管理器,展开当前数据库实例,选择要导出数据库在本系统为DATAWAREHOUSE,如图(1):2、接着就会弹出SQL SERVER DTS 向导如图(2):3、点击“下一步”,开始数据导入前的一些设置,并选择源库如图(3):4、再次点击“下一步”,这一步主要的是设置目的库,在“目的”中选择“ORACLEProvide for OLE DB ”(该驱动是安装ORACLE 后才出现的),如果有两台数据库服务器,SQL Server 和ORACLE 各在一台服务器上,那么你还可以选择“Microsoft OLE DB Provide for ORACLE ”如图(4):5、在选择好驱动以后要注意点击属性,择会弹出下面的窗口来验证身份,那么这时候SQL SERVER 就和ORACLE 建立了信任连接如图(5):6、一定要点击“测试连接属性”哦,如果能看到下面的窗口,恭喜你,否则,很步幸运,你要检查看看服务起来没有^_^ 如图(7):7、好了,回到点击两次“确定”后,继续点击“下一步”,如图(8):8、我们选择第一个“从源数据库复制表和视图”,如果你选择“用一条查询指定要传输的数据库”,主要用在数据筛选的情况,点击“下一步”,如图(9):9、选择你要导入的表,注意如果是视图,建议不要在这里导入,到目的库会变成表,这一点请一定要注意,如果不分结果全选可能会出现这种情况!然后点击“下一步”,则可以进行数据导入了,如果你想做一个任务来调度,那么你还可以点击“调度DTS包以便以后执行”,现在我们选择“立即执行”如图(10):10、好了,点击“完成”,就可以进行该任务了,如图(11):11、现在我们点击“完成”,则任务立即执行如图(12):12、如果出现下面的窗口,那么恭喜你,导入数据成功了!如图(13):13、然后点击“确定”,从而完成该任务,下面让我们看看该方法的优缺点。

SQLServer到Oracle的数据迁移

《高级数据库应用》课程项目报告《数据库迁移》姓名:组员:班级学号:指导教师:完成报告时间:数据库迁移1.实验环境:硬件环境:⏹Intel(R) Core(TM)2 Duo CPU P4200 2.13GHz⏹ 2.00GHz 2.00GB 内存软件环境:⏹windowsXP Professional sp3⏹oracle 9i⏹SQL server 2005⏹Oracle SQL Developer2.前提:是要在oracle中建立一个和SQL Server中名字一样的数据库,并创建新的用户名和密码3迁移过程:(1)一般情况:只迁移表,而不是存储过程、函数等,可以使用SQL Server 2005自带的导入导出工具。

1)迁移方法:右键单击SQL Server中你要导出的数据库--》任务--》导出数据--》下一步--》添好各选项(SQL Server数据源的)下一步--》数据源等默认——》下一步,目标选择Microsoft OLE DB Provider for Oracle,属性中填入你要导入的oracle数据库的名字,用户名,密码------>下一步------>选中全部表,下一步------>下一步------>下一步. 将会将表结构和表中的数据一同导入到oracle中去。

2)实例:将SQL Server数据库aaa导出到Oracle中<1>首先在Oracle中创建数据库aaa.:图(1):在Oracle中创建数据库aaa.<2>下一步:选择创建数据库:图(2):选择创建数据库<3>创建数据库名称aaa:图(3)创建数据库名称aaa<4>右键单击SQL Server中的aaa数据库,选择任务,导出数据:图(4)从SQL的aaa数据库中导出数据<5>运行数据库导出向导:<6>选择目标Microsoft OLE DB Provider for Oracle:<7>数据库连接属性:图(7)输入连接属性图(8)选择要迁移的内容<8>选择要复制的表或者视图:<9>是否保存SSIS包:<10>完成该向导:<11>执行成功:<12>具体表的迁移:图(14)具体表的迁移,已经完成奖惩信息表的迁移。

Sql server 迁移到oracle 方案

Sql server 迁移到oracle 方案1.系统目前运行情况系统目前采用的数据库是sql server 2005操作系统平台是windows server 2003操作系统的配置:16cpu,32g内存诊断:目前系统运行较慢,windows server 2003和sql server 2005不能充分利用现有的硬件配置,已经形成瓶颈,导致资源浪费。

2.sql server和oracle的产品比较1).Oracle为客户端开启会话有两种方式:共享服务和专用服务。

在专用服务情况下,监听器为连接请求创建新进程(Unix环境下是Process,Windows下我想应该是Thread吧);共享服务情况下,监听器将客户请求交给Dispatcher,由Dispatcher安排多客户的作业。

SQL Server在默认情况下自动为客户端连接创建线程,当有非常多的客户连接时,SQL Server可以使用线程池管理多会话,这类似于Oracle的共享服务。

2).Oracle的内存管理分三块:SGA、PGA、UGA;在MSDN中并没有提及怎样控制SQL Server的内存分配,只是提到SQL Server的虚拟地址空间分成缓冲池占用空间和其余空间,且SQL Server有动态内存管理机制。

3). Oracle的实例一次只能管理一个数据库,数据库在集群环境下可由多个实例管理。

而SQL Server单个实例一次能管理多个数据库。

Oracle数据库存储方式有OS文件、裸分区、ASM等,SQL Server的数据库存储只能是系统文件。

4). Oracle数据库包含表空间,表空间可以使用多个文件存储数据,表空间就类似于SQL Server中的文件组。

区是物理连续上连接的存储空间,区中包括最小I/O单位——块(Oracle)或页(SQL Server)。

但SQL Server页大小是8KB,区包含8个页;Oracle不同表空间可以有不同的块大小,区的大小和保护块的数量也不固定。

如何从SQLSERVER迁移大批量数据到ORACLE

使用本文介绍的方法传输258万数据表共6个表,历时1小时,运行机器CPU平均占用率60%
分析:
微软DTS在异种数据库之间传送数据时,采用ODBC开放数据连接方式,而ODBC的速度慢是众所周知的缺点,导致异种数据库间传送数据慢。而SQLSERVER是微软自己的数据库系统,采用DTS导SQLSERVER的时候能很快,这是一个优点;oracle使用工具sqlldr能够很快的将文本数据导入oracle自己的数据库也是一个优点。结合两个工具,可以提供快速的对大量数据进行迁移。
在例一中字符串由 "标志,所以需要加optionally enclosed by '"',在例二中不需
在例一中日期格式需要在域名后加 'date "yyyy-mm-dd hh24:mi:ss",

LOAD DATA
INITFILE 'tbilllog1.txt'
insert into table tbilllog1
insert into table tbilllog1
fields terminated by ',' optionally enclosed by '"'
(
callid,
callidnum,
callerno,
calleeno,
waitbegin date "yyyymmdd",
waitend date "yyyymmdd",
text= double quote{"} (缺省)
在comumn和text选项会影响到oracle的controlfile的设置
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL Server数据导入到Oracle中的方法
如果我们需要将SQL Server数据库中的数据导入到Oracle数据库中,应该如何操
作呢?下文对该方法的步骤进行了详细的介绍,供您借鉴参考之用。

在我们使用SQL Server数据库的过程中,有时需要将SQL Server数据导出,导
入到其他的数据库中,比如导入到Oracle中。

假设要将SQL Server中的Northwind数据库中的Products表导出到Oracle 的Scott用户
首先需要有安装SQL Server企业版
1.打开工具:
开始->程序->Microsoft SQLServer->导入和SQL Server数据导出数据
2.下一步,选择数据源
[数据源]选择“用于SQL Server的Microsoft OLE DB提供程序”,这应该是缺省值。

[服务器]选择要导出数据的服务器,如果是本机,选择(local)
[数据库]选择要导出的数据所在的库,这里选择Northwind
3.下一步,选择目的
[目的]选择Microsoft ODBC for Oracle
[DSN]选择用户/系统DSN一项,然后在下拉列表框中找一个已经连接到了Scott用户的DSN名称。

如果下拉列表中没有,点下拉列表框右侧的[新建],出现创建新数据源界面。

接下来选择系统数据源,下一步,在驱动程序列表中选择Microsoft ODBC for Oracle
下一步,完成,出现Microsoft ODBC for Oracle安装界面
[数据源名称]随便输入,比如sss
[说明]可以不填
[用户名称]填入要SQL Server数据导出到的Oracle用户名称,这里是scott
[服务器]填入要连接到Oracle服务器所使用的服务名,比方说使用sqlplus
scott/tiger@server1可以连接到数据库,那么这里就填入server1。

如果本机就是服务器,使用sqlplus scott/tiger即可连接到数据库,这里空着不填即可。

这样就创建好了一个数据源sss,保证下拉列表框中选择了sss一项。

[用户名]填入SQL Server数据导出到的Oracle用户名称,这里是scott
[密码]填入SQL Server数据导出到的Oracle用户使用的密码,这里是tiger
4.下一步,指定表复制或查询
如果要导出的内容是整个表,选择[从源数据库复制表和视图]
如果要导出的内容是表的一部分列,行,可以选择[用一条查询指定要传输的数据],这时需要写出一个查询语句
这里选择第一项[从源数据库复制表和视图]
5.下一步,选择源表和视图
点中要导出的表Products一行的复选框,目的、转换两栏就会出现内容。

目的可以用来选择表名。

转换可以用来修改列的数据类型或是整个建表的SQL语句
6.下一步,保存、调度和复制包
选中立即运行
7.下一步,正在完成DTS导入/导出向导
8.完成
提示“成功地将n个表从Microsoft SQLServer复制到了Oracle”
9.完成,关闭导入导出程序
注意:因为oracle的表名都是大写的,而SQL的表可能是大小混写的,所以导入后在oracle里查不到该表,比如这个Products表在oracle里查询就应该写成select * from scott."Products";为了方便查询可以通过批量修改表名为大写以便后面导数据的工作。

---导完数据后执行下面语句,生成把表名修改成大写的操作
select 'ALTER TABLE '||'"'||table_name||'"'||' RENAME TO '||
upper(table_name)||';' from user_tab_comments;
把生成的文件执行即可把此用户下的所有表名修改成大写。

相关文档
最新文档