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

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的数据迁移

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 方案

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

如何从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的设置

SQL脚本移植到ORACLE的一些方法总结

SQL脚本移植到ORACLE的一些方法总结

SQL脚本移植到ORACLE的一些方法总结一、表、索引、约束脚本转换1、把SQL SERVER脚本中的‘[’和‘]’去掉,(ORACLE中不能有此符号);同时把‘GO’去掉,在每一段程序后面加上‘/’2、数据类型之间的转化:目前我们程序中需要改动的就以上几种。

3、自增长字段的处理:由于oracle 没有自动增长字段,对于在sql server中的自增长定义全部去掉,用oracle 的sequence替代,具体步骤如下:1、查找sql server 脚本中的IDENTITY(1,1) 字符串,将它去掉;2、在去掉的同时,建立一个sequence :create sequence 表名_字段名// sequence 的名称由表名_字段名组成start with 1increment by 1nomaxvaluenocycle3、在建立了sequence 后,马上建立一个触发器,这个触发器的作用是在往原来的自增长字段表中插入一个记录前,将由sequence取到的下一个值自动加入新纪录的自增长字段:create or replace trigger 表名_trigger // 触发器的名称由表名_trigger 组成before insert on 表名for each rowbeginselect 表名_字段名.nextval into :new.id from dual;end ;/在实现了上述3个步骤后,不用更改任何sql脚本和程序代码,就能实现自增长字段同样的功能举例:CREATE TABLE VotingViewer (id integer NOT NULL PRIMARY KEY,votingid integer NULL,sharetype integer NULL,resourceid integer NULL,subcompanyid integer NULL,departmentid integer NULL,roleid integer NULL,seclevel integer NULL,rolelevel integer NULL,foralluser integer NULL)/create sequence VotingViewer_idstart with 1increment by 1nomaxvaluenocycle/create or replace trigger VotingViewer_triggerbefore insert on VotingViewerfor each rowbeginselect VotingViewer_id.nextval into :new.id from dual;end ;/4、返回默认值的修改:在SQL server中如果需要对一些列名进行返回值的设定,它有专门的语句:比如:ALTER TABLE [Prj_TaskProcess] WITH NOCHECK ADDCONSTRAINT [DF__Prj_TaskP__isact__5CE1B823] DEFAULT (0) FOR [isactived] GO但是在ORACLE中实现语句很复杂,所以这次采用的是人工修改,比如上例:先找到表:Prj_TaskProcess 再找到列名:isactived 把列名后面的NULL改成:default 0 就可以了。

从SQLSERVER迁移到ORACLE教程 图解

从SQLSERVER迁移到ORACLE教程 图解

数据库迁移自述文件
使用sqldeveloper-3.2.20.09.87
首先创建2个连接、一个Sqlserver 和oracle 。

需要注意的是oracle连接用户必须具备高一点的权限。

这里可以对数据类型进行自定义改变。

需要改变对象命名为迁移用户的用户名。

当前的用户名为taoxs 然后提交
下面开始转换对象。

生成sql脚本。

注意:运行sql脚本需要用管理员的权限的用户。

Nbs_complainthandle 表在sqlserver中的默认值为”默认值”所以在这里需要将default “默认值去掉”。

还有一个视图v_getdate 转换有问题需要修改为
修改完成后,断开oracle的连接。

更换为管理员的用户登录,然后运行脚本
表结构生成完成。

切换为之前的oracle用户登录,然后移动数据
然后点击下一步
生成成功后。

删除移植资料库
完成!!!。

sql server向oracle迁移

sql server向oracle迁移

SQL SERVER 到ORACLE 迁移的方法----引用数据库端SQL语法的迁移以下为常用的SQL语法迁移,包括数据类型、ID列向SEQUENCE迁移、表(主键、外键、CHECK、UNIQUE、DEFAULT、INDEX)、游标、存储过程、函数、触发器、常用SQL语法与函数几个方面,考虑SQL SERVER 的实际情况,没有涉及ORACLE特有的PACKAGE、EXCEPTION等。

在以下的描述中,将SQL SERVER的TRANSACT-SQL简称为T-SQL。

在ORACLE 中,其语法集称为PL/SQL。

<一> 数据类型的迁移<1>、ORACLE端语法说明在ORACLE中,分析其数据类型,大致可分为数字、字符、日期时间和特殊四大类。

其中,数字类型有NUMBER;字符类型有CHAR与VARCHAR2;日期时间类型只有DATE一种;除此之外,LONG、RAW、LONG RAW、BLOB、CLOB和BFILE等数据类型都可视为特殊数据类型。

<2>、SQL SERVER端语法说明在SQL SERVER中,参照上面对ORACLE的划分,数据类型也大致可分为数字、字符、日期时间和特殊四大类。

数字类型又可分为精确数值、近似数值、整数、二进制数、货币等几类,其中,精确数值有DECIMAL[(P[, S])]与NUMERIC[(P[, S])];近似数值有FLOAT[(N)];整数有INT、SMALLINT、TINYINT;二进制数有BINARY[(N)]、VARBINARY[(N)];货币有MONEY、SMALLMONEY。

字符类型有CHAR[(N)]与VARCHAR[(N)]。

日期时间类型有DATETIME、SMALLDATETIME。

除此之外,BIT、TIMESTAMP、TEXT和IMAGE、BINARY VARING等数据类型都可视为特殊数据类型。

<3>、从SQL SERVER向ORACLE的迁移方案比较ORACLE与SQL SERVER在数据类型上的不同,当从SQL SERVER向ORACLE迁移时,可以做如下调整:方法:公司原系统中的Money 用于金额时转换用number(14,2);用于单价时用 number(10,4)代替;<二> ID列向SEQUENCE迁移<1>、SQL SERVER端语法说明在SQL SERVER中,可以将数据库中的某一字段定义为IDENTITY列以做主键识别,如:jlbh numeric(12,0) identity(1,1) /*记录编号字段*/CONSTRAINT PK_tbl_example PRIMARY KEY nonclustered (jlbh) /*主键约束*/在这里,jlbh是一个ID列,在向具有该列的表插入记录时,系统将从1开始以1的步长自动对jlbh的值进行维护。

【信息化-精编】使用Oracle移植工作台从MicrosoftSQLServer移植到Oracle数据

【信息化-精编】使用Oracle移植工作台从MicrosoftSQLServer移植到Oracle数据

使用Oracle移植工作台从MicrosoftSQLServe r移植到Oracle数据使用Oracle移植工作台从MicrosoftSQLServer移植到Oracle数据库10g目的本模块介绍了如何使用Oracle移植工作台从MicrosoftSQLServer数据库移植到Oracle数据库10g。

所需时间大约2个小时主题本教程将讨论下列主题:概述情景前提条件安装和配置Oracle 移植工作台创建源模型创建Oracle 模型自定义Oracle 模型将表空间、用户以及用户表移植到目标数据库中将数据移植到目标数据库中将其余模式对象移植到目标数据库中验证成功移植了存储过程和触发器生成和查看Oracle 移植工作台报告总结概述Oracle移植工作台是什么?Oracle移植工作台是一种简化从第三方数据库系统到Oracle平台(Oracle9i和Oracle数据库10g)移植过程的工具。

Oracle移植工作台在集成环境中移植整个数据库模式(包括触发器和存储过程)。

通过Oracle移植工作台,您可以:•使用向导和脚本在各个阶段进行移植•使用联机捕获或脱机捕获检索源数据库信息•自定义信息库中的WorkInProgress数据库对象•分析存储过程、触发器以及视图,并将它们转换为OraclePL/SQL•通过报告和消息监视移植的状态。

Oracle移植工作台从源数据库库(如SQLServer)提取信息,并创建Oracle目标数据库。

为了移植不同的源数据库,Oracle移植工作台针对其所能移植的每一个数据库使用专门的插件。

通过脱机捕获方法,Oracle移植工作台从源数据库检索元数据,并将它们存储到您载入到工作台信息库的一组文件中。

工作台信息库是Oracle数据库中的一组表,包含有关移植的所有信息。

工作台信息库由源模型(表示源数据库)和Oracle模型(表示Oracle数据库)组成。

您可以在工作台信息库对源模型和Oracle模型进行修改,而不会影响生产环境。

从SQLSERVER迁移到ORACLE教程图解

从SQLSERVER迁移到ORACLE教程图解

从SQLSERVER迁移到ORACLE教程图解迁移数据库是一项常见的任务,尤其是在从SQL Server迁移到Oracle数据库时。

虽然SQL Server和Oracle都是关系型数据库管理系统,但是它们在语法、功能和架构方面存在一些差异。

因此,迁移数据库需要一定的准备和技巧。

下面是一个图解的教程,以帮助您从SQL Server成功迁移到Oracle数据库。

1.确定需求和目标:在开始迁移之前,确保您清楚地了解迁移的需求和目标。

确定迁移的原因、迁移的时间范围以及迁移后的期望结果。

2.准备数据库迁移工具:为了顺利进行数据库迁移,您需要选择和准备合适的数据库迁移工具。

有一些商业工具可供选择,也有一些免费的开源工具可用。

确保选择一个适合您的迁移需求的工具。

3. 导出SQL Server数据库:使用SQL Server提供的导出工具,将需要迁移的数据库导出为一个可移植的文件。

这个文件将包含数据库的结构和数据。

4. 创建Oracle数据库:在Oracle数据库服务器上创建一个新的数据库,可以使用Oracle提供的工具,如SQL Developer或者通过命令行。

5. 导入SQL Server数据库到Oracle:使用之前选择的数据库迁移工具,将导出的SQL Server数据库文件导入到Oracle数据库中。

这个过程会将SQL Server数据库的结构和数据转换为Oracle数据库可识别的格式。

6. 修改语法和函数:由于SQL Server和Oracle在语法和函数方面存在差异,所以在迁移后可能需要修改一些SQL语句和函数。

确保您了解这些差异,并相应地修改代码。

7. 测试和验证:迁移数据库后,进行一系列的测试和验证,以确保迁移成功。

测试数据库的结构和数据的完整性,以及应用程序在新的Oracle数据库上的正常运行。

8. 迁移应用程序:如果您的数据库迁移是为了支持一个应用程序,那么在迁移数据库后,您还需要相应地迁移和配置应用程序。

sql server数据向oracle转移如何做-

sql server数据向oracle转移如何做-

sql server数据向oracle转移如何做?public class TestSqlpublic static void main(String[] args) throws SQLException, ClassNotFoundException/* jdbc的oracle连接*/// String sDBDriver = oracle.jdbc.driver.OracleDriver/* odbc的连接*/String oralce_sDBDriver = oracle.jdbc.driver.OracleDriver String oralce_sConnStr = jdbc:oracle:thin:localhost:1521:orcl/* jdbc的SQL server连接*///jdbc.url=jdbc:sqlserver://IP;instanceName=ProductDB;databa seName=product_index;selectMethod=cursorString sqlServer_sDBDriver = com.microsoft.sqlserver.jdbc.SQLServerDriverString sqlServer_sConnStr = jdbc:sqlserver://localhost:1433;DatabaseName=jyxm // 客户端游标// String sConnStr =// jdbc:sqlserver://localhost:1433; DatabaseName=mahanso //;selectMethod=cursor// 服务器端游标// String sConnStrServerCursor =//jdbc:sqlserver://localhost:1433;DatabaseName=mahanso;sele ctMethod=cursorString sqlServer_UserName = saString sqlServer_PassWord = *******String oralce_UserName = systemString oralce_PassWord = ********// 登记驱动Class.forName(oralce_sDBDriver);Class.forName(sqlServer_sDBDriver);// 连接到数据库Connection cn_oracle = DriverManager.getConnection(oralce_sConnStr,oralce_UserName, oralce_PassWord);Connection cn_sqlserver = DriverManager.getConnection( sqlServer_sConnStr, sqlServer_UserName, sqlServer_PassWord);Statement s_oracle = cn_oracle.createStatement();Statement s_sqlserver = cn_sqlserver.createStatement();ResultSet rs = s_sqlserver.executeQuery( select * from area where id between 1 and 20000 );// 字段1// 字段2String name = new String( 1 );// 字段3int deep= new Integer(1);int parentid = new Integer(1);// 向oracle数据库插入数据while (rs.next())name = rs.getString( name );deep = rs.getInt(deep);parentid = rs.getInt(parentid);s_oracle.execute( insert into area values( +name+ , +deep+ , +parentid+ ) );方法2:任务——导出——for Oracle——连接Oracle——复制表——ssis——完成。

从sqlserver向oracle导数据

从sqlserver向oracle导数据

从SqlServer向Oracle导数据以下介绍,使用SqlServer企业管理器提供的“数据转换服务”,从SqlServer向Oracle 数据库导数据。

其他数据库类同。

1 打开dts导入/导出工具2 选择源数据库3 选择目标数据库选择驱动后,可以点击新建,添加一个数据源,也可以选择已有的或者其他用户共享的文件数据源。

3.1 添加数据源点击【新建】图3.1-1这里有三种选择:●文件数据源(注:这种数据源可以和其他机器共享。

但是这种数据源是基于“系统数据源”或“用户数据源”创建的,在创建之前,请先确保你已经创建了“系统数据源”或“用户数据源”)●用户数据源●系统数据源如果不需要共享给其他用户,可以直接新建“用户数据源”或“系统数据源”。

下面我们分别介绍:1)先说创建“系统数据源”在图图3.1-1中选择“系统数据源”,点击【下一步】选择链接你的目标库的驱动程序,点击【下一步】点击【完成】在上图中给你的数据源取一个名字(我这里为“testOracleDs”),选择你要连接的TNS Service Name(数据库sid),录入User ID(用户名)。

然后点击【Test Connection】测试一下点击【OK】如果上图所示,我们的连接测试成功。

如上图所示,就可以选择刚才创建的“系统数据源”了。

2)创建“用户数据源”的方式与“系统数据源”类似3)创建“文件数据源”如果想将数据源共享给其他机器的用户,可以基于已创建的“系统数据源”或“用户数据源”创建一个“文件数据源”。

在图3.1-1中选择“文件数据源”,点击【下一步】选择驱动程序后,点击【下一步】选择要将当前数据源存储的位置点击【下一步】注:Service Name是一个已创建好的“系统数据源”或“用户数据源”的名字,我们这里输入1)中创建的testOracleDs,User Name和Password分别为对应的数据库用户名和密码,点击【OK】这里会出现上边的提示,直接点【是】就可以了(这里应该是由于,我们创建的这个“文件数据源”不能在选择“用户/系统DSN”时使用的原因,下边我们会说到)。

  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;
把生成的文件执行即可把此用户下的所有表名修改成大写。

相关文档
最新文档