数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
系统从oracle版本转化为sqlserver版本

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Waterxp oracle版本转化为sqlserver版本

 

1,系统安排

 

       为了oracle版本和sqlserver版本能很方便的转化,也为了两个版本能同步修改,特别是业务逻辑层。现决定如下:

A,两个版本的业务逻辑层都放在source目录下。在该目录下有两个目录:

sql ora。这两个目录有三个文件:

common.pbl  ,water_modi.pbl,dw_version.pbl

这三个 文件里面绝大部分是数据窗口,主要是因为sql server oracle的语法有差别。如果只是因为数据窗口有双引号在sql server里不能用,那么把数据窗口的select语法的字段引号去掉即可,因为没有引号的select语句在sql serveroracle下面都是可用的。修改的过程中注意update属性。

B,不同的数据库将使用不同的目录。

 

2,系统环境的建立

       每台机器上建立下面的磁盘映射:

       P  指向  \\oraservr\p237

   V   指向  \\oraservr\sql237  或者是 \\oraserver\ora237 

    源代码在 \\oraserver\code\water237\source 里面。

    P盘是肯定要有的, V盘由使用什么版本决定。

3,源代码的修改

业务层的修改尽可能的在源代码处,因为这样修改能让两个版本同时修改。

P盘是类库可以不需要修改。

V盘里的数据窗口都需要改。

sql237里面的数据窗口,要修改和要注意的地方:

替换的方法

oracle里面使用                      sql server 里面使用

to_char(readingdate,’yyyymm’)      convert(char(6),readingdate,111)

to_char(readingdate,’yyyy/mm’)      convert(char(7),readingdate,112)

decode( ,  ,  ,  ,)               case when then end 或者 isnull(x,0)

左右连接 (+)                   left outer join

     修改过程中要注意数据窗口的update属性。

4,工作计划

   41先修改sql237目录下的三个pbl里面的数据窗口的语法。为了照顾数据窗口的update属性,建议使用edit source的方法,而且select语法字段的引号在sql server版本建议去掉。使用pbreplace功能即可。

   42 修改某些数据窗口的内嵌式sql 的语法。因为有一些内嵌式sql 也使用了decode() ,或者是to_char(),这些语法在sqlserver也是必须代替的。

修改方法:

if gs_database = ‘ORACLE’ then

 ………………decode()……………;

else

…………………case when then end ………..;

end if

43 最后的工作是测试。这是最繁琐的最重要的。在测试的过程会发现有一些数据窗口在sql server不能用:修改方法是将字段的引号去掉或者是移到sql ora目录里面的dw_version.pbl文件里面,在那里进行修改。

44主要的数据表都已经迁移过来了,名字一样,可能在sql server有一些表的字段不够那么请重新导入一次。主要的存储过程都已经翻译过来,名字不一样。在测试的过程会发现有一些视图没有存在,那么请从oracle把语法拷贝出来,在sql server查询分析器里生成之。

 

 

 

 

 




相关文章

相关软件