SQL Server 移植到Oralce 项目实战

项目背景

         移植一个现有系统到Oracle。原系统基于.Net Framework 1.1, SQL Server 2000数据库,数据操作基本全部使用Store Procedure,总数逾千,因此总体涉及的PL SQL 开发量比较大。

 

         优先级高,开发时程短,参与人员多,是这个项目的显著特点。本人作为项目负责人,主要按照下列步骤进行,最终圆满达成目标。

 

第一步    评估

1.       确认需要移植的功能列表

2.       评估技术难点, 寻求相关资源支持

3.       评估主要工作量

工作重点在于移植SQL Server SP Oracle Package,预估移植一个SP所需平均时间等

4.     建立项目计划

 

第二步    前期准备

1.       确定目标Oracle数据库的版本(Oracle10.1.0.5.0)和编码(ACTUTF8)

数据库的编码确定非常重要,由于原系统支持多语言存储,所以Oracle我们选择了ACTUTF8。这种编码对应的SQL Server 中,1个字符占3个字节。

2.       Oracle 数据库设计(咨询资深Oracle DBA)

3.       评估技术难点,找解决方案

1)       Identity栏位实现

使用Trigger

2)       临时表实现

使用Oracle的临时表(8i后已提供)

3)       .Net Oracle驱动程序

采用ODP.NET

       4)    多数据库支持

               使用数据库层替换的方式

4.   确定SQL Server -> Oracle / 栏位映射关系,形成SQL Server/Oracle 表对照文档

1)       一般原则,原对象的名称不做改变;

2)       栏位类型,字符类型 -> VARCHAR2,  数字类型 -> NUMBER(m, n)

3)       栏位长度,最大长度 *3 保存固定长度ID的栏位长度不做变更;

4)       Oracle 中建立对应表,通过SQL Server DTS导入基础数据

5.       SP使用Package组织,并重新命名,形成SQL Server/Oracle SP对照文档。

因为Oracle 对象名称长度不能超过30SQL Server SP长度普遍超过30,因此需要重新命名并分组。

6.       准备相关文档

1)       Web服务器,数据库服务器资料(便于对比前后功能等)

2)       Oracle 服务器环境资料

3)       本机环境配置说明

4)       相关工具,技术资料和开发文档说明

5)       开发规范

6)       SourceSafe等资源说明

7)       项目组成员邮件列表

 

第三步    基础性开发

1.       Framework 1.1 升级到Framework 2.0 (项目要求),构建Solution

2.       对照原SQL Server 数据库操作组件,构建对应的Oracle版本

3.       公共SP,存储过程试转移

 

第四步    大规模开发与测试

1.       分组进行SP转移

2.       1人负责.Net SP调用

3.       开发人员自测

4.       测试Team 测试

 

其它

1.  在项目开发过程中,大量使用工具,提高效率,增强沟通。主要使用的工具有:

1)       Oracle 开发工具PL/SQL Developer

2)       数据库Schema定义导入导出工具

3)       SQL Server SP自动转Oracle Procedure的工具

4)       自动生成调用 Procedure 的C#代码的工具

5)   自动翻译SQLServer数据层组件为Oralce版本的工具

6)       多语言数据导入导出工具

7)       项目日志工具,用于项目组成员沟通项目进展,发布开发经验等

 

2.  由于项目组成员大多熟悉T-SQL,  PL-SQL 经验不足。开发上,最容易犯一下Bug,需要谨记。

1)       SQL Server连接字符串使用操作符号 +Oracle 使用操作符 ||

2)       SQL Server Null 与空字符串不同,Oracle Null和空字符串一样

3)       SQL Server SQL 不需要显式Commit, Oracle则需要

 

3. 其他经验

1)       Debug时候,dbms_output.put_line输出有长度限制,可以建立一个DEBUG, 专门写入测试输出

2)       为避免出现乱码,需要设定本机字符集

                   HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_OraClient10g_home1/NLS_LANG                   SIMPLIFIED CHINESE_CHINA.AL32UTF8

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值