范文无忧网公文文书协议合同

如何从oracle迁移数据到sql server

01月20日 编辑 fanwen51.com

[EXCEL表数据处理问题]可以使用 进位函数 以下是常用的保留小数位数的函数,根据你的要求,我们选择roundup这个函数,我举例说明: =MOD(A1*100,1)=0 强制单元格输入信息为保留一位小数的数字格式。 =tru...+阅读

前阵做了下数据库迁移,从Sql Server2005迁移到Oracle10g,这里说一下迁移的方法。Sql Server和Oracle区别比较大,包括语法,字段类型,数据库机制,配置管理方法等等,区别是全方位的,做迁移需要注意很多问题,在迁移过程中也会遇到问题,需要细细处理之。这里说一下数据库结构的迁移,和迁移过程中注意的一些问题。(当然具体的数据库迁移过程中可能问题是不一样的,具体问题具体分析了) 迁移的方法是从Sql Server已有数据库中生成出Oracle的建库脚本,然后在Oracle数据库上执行。用到的生成工具是Power Designer。

1、打开PD(Power Designer简称,以下均使用PD),新建一个PDM(物理数据模型),DBMS选择Microsoft SQL Server2005,Model name起名叫做mssdb。

2、通过逆向工程将现有Sql Server数据库生成PDM

(1)选择Database->Reverse Engineer Database,配置数据源,选择要迁移的数据库,输入用户名、密码。

(2)选择数据库,选择用户dbo下的所有表、视图、存储过程、方法、触发器、序列等(由于Sql Server与oracle,数据库概念上的区别,这里不需选择用户、角色)。点击OK,生成PDM。已经建立过PDM的情况,这一步可以省略。

3、生成Oracle物理数据模型 选择Tools->Generate Physical Data Model

(1)DBMS选择Oracle10g,输入名称:oradb。

(2)在Configure Model Options配置中, Model Settings的Table&View界面中,勾选Ignore identifying owner。Oracle中用户的概念与Sql Server不同,这里忽略owner。

(3)Selection标签,选择需要生成的所有表、视图、外键、存储过程、方法、触发器、序列等。点击确定,即生成了oracle 的PDM。注意,在生成PDM的过程中可能不会一帆风顺,有可能会报错(比如提示对象长度超限),这会导致生成失败。这时需要根据具体错误提示做相应修改(可能需要多次调整,没有办法,谁让两者差别这么大的呢)。

4、生成Oracle脚本 与Sql Server不同的是,在Oracle里表名、字段名全部为大写,若要单独处理为小写,需加上双引号。而PD生成的脚本默认是有双引号的,这里需要修改默认配置,去掉双引号。然后选择oradb,然后选择Database->Generate Database,进入数据库生成界面 在Format标签下,去掉勾选Owner prefix,它将省掉建表语句前“dbo.”所带来的麻烦;在Selection标签下,选择要生成脚本的各对象;在Preview标签下,可以预览预生成的脚本(表较多时,切换会比较慢)。点击确定,即得到生成的脚本。

5、检查与调整 脚本是PD自动生成的,因为表比较多,在oracle上直接去执行难免会有错误。所以在执行之前需要检查下脚本的正确性。这里提几点需要注意的地方。

(1)Oracle要求表名、字段名等长度最多是30位,而Sql Server没有这个限制,所以可能会有在Sql Server创建正常的表而在Oracle下会创建失败。

(2)检查一下主键、外键的名称,它们有可能是随机生成的名称。可根据相应规范进行修改。

(3)检查字段名是否用到了Oracle的关键字。比如Sql Server命名“备注”字段可能会用“comment”、标题用“title”,但comment、title在Oracle中是关键字,不可以做为字段名称。

(4)存储过程、方法是否符合Oracle语法。

(5)Sql Server有自增字段,而Oracle没有。要实现此功能,需要相应创建序列、触发器。

(6)Sql Server中字段类型为text的情况,如果是存二进制数据需要在Oracle中选用Blob字段类型。

(7)Sql Server有外键的情况,主表记录删除,从表记录也会跟着删除;而Oracle默认情况是当从表有记录时,所对应的主表记录不允许删除。所以这种情况下外键需要添加外键级联删除。

(8)生成的表、视图等个数是否正确,缺失的情况可单独生成脚本。系统不一样,出现问题的点可能也不一样,具体问题具体分析。

6、建库 在Oracle数据库服务(当然要先安装好Oracle服务端、并建立数据库)orcl实例下,使用用户sys登陆并创建用户orauser,并将resource、connect角色赋给orauser(这里,orauser使用默认表空间、默认临时表空间)。用刚创建的用户orauser登陆orcl数据库服务,执行前面已经生成的脚本,若干分钟后脚本执行完毕,观察一下执行过程中有无错误产生,也可以记录执行的日志以便日后查看;检查看表、视图等个数与Sql Server数据库中是否一致。如果都正确,那么,数据库结构从Sql Server到Oracle的迁移到此结束。当然,迁移的是否正确还需要在之后的使用中检查,发现错误及时修改即可。

延伸阅读:

多对多的数据库表该怎么来处理呢/*角色表*/ create table Role( RoleId int, /*角色id*/ RoleName varchar(60) ,/*角色名称*/ CONSTRAINT XPKRole PRIMARY KEY (RoleId) ) /*权限表*/ create table Auth( Au...

Array数据的相关处理有哪些参数:array-数组index-索引返回:指定数组中索引组件的值抛出:NullPointerException-如果指定对象为nullIllegalArgumentException-如果指定对象不是一个数组,或者如果无法通过一...

数据处理经历了哪几个阶段随着科技,经济及社会的不断发展与进步,管理和办公活动的重要性日渐突出,引起了各级领导者,管理学者以及技术人员的普遍重视.20世纪60年代以来,在微电子技术和通信技术迅速发展的...

数据结构顺序表索引表:求该题的编程和基本思想有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就...

数据结构与算法的题目怎么做首先,要能够读懂代码,总结算法的思想,搞清楚该题算法是完成什么功能,然后是填空也好,写算法结果也好,就不成问题了。要想提高的快,就得多练啊。同时教材中的相关算法也要熟,好多是书...

Windows多台服务器数据同步可有好的软件方案微软的MSCS, 赛门铁克的Veritas Storage Foundation,易腾数信的EterneCluster,SteelEye的LifeKeeper, 下面介绍下详细情况: MSCS,微软自带的不过要在Server版本中才有,他的群集服...

九大数据仓库方案特点横向比较是什么本文针对几大知名的数据仓库解决方案的性能和特点做分析和比较…… IBM、Oracle、Sybase、CA、NCR、Informix、Microsoft、和SAS等有实力的公司相继(通过收购或研发的途径)推...

九大数据仓库方案特点横向比较结果是什么Informix--Informix于1998和1999年相继收购了国际上享有盛誉的数据仓库供应商Red Brick System和数据管理软件供应商Ardent,并提供了完整、集成的数据仓库解决方案。该解决方...

企业一般通过互联网传输数据使用的协议有哪些你说的是的 TCP/IP 吧。它“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通...

推荐阅读
图文推荐
栏目列表