系统从oracle版本转化为sqlserver版本

oracle|server|sqlserver

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 server和oracle下面都是可用的。修改的过程中注意update属性。

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

 
2,系统环境的建立
       每台机器上建立下面的磁盘映射:

       P  指向  \\oraservr\p237

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

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

    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,工作计划
   4,1先修改sql237目录下的三个pbl里面的数据窗口的语法。为了照顾数据窗口的update属性,建议使用edit source的方法,而且select语法字段的引号在sql server版本建议去掉。使用pb的replace功能即可。

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

修改方法:

if gs_database = ‘ORACLE’ then

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

else

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

end if

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

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

 

 

 

 

 

时间: 2024-10-29 21:07:41

系统从oracle版本转化为sqlserver版本的相关文章

如何把SQLServer数据库从高版本降级到低版本?

原文:如何把SQLServer数据库从高版本降级到低版本? 由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接[分离/附加]或者[备份/还原]数据库,在不同版本之间存放.往往就会遇到版本不兼容的问题.前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错: 从运行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出这个版本不兼容问题,大部分情况下,从低版本升级到高版本,只要不

SQLServer数据库从高版本降级到低版本实例详解_MsSql

SQLServer数据库从高版本降级到低版本实例详解 由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接[分离/附加]或者[备份/还原]数据库,在不同版本之间存放.往往就会遇到版本不兼容的问题.前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错: 从运行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出这个版本不兼容问题,大部分情况下,从低版本升级到高版本,只要不是跨度

SQLServer数据库从高版本降级到低版本实例详解

SQLServer数据库从高版本降级到低版本实例详解 由于目前还广泛使用着SQLServer2000,很多公司又想使用新的SQLServer,从而直接[分离/附加]或者[备份/还原]数据库,在不同版本之间存放.往往就会遇到版本不兼容的问题.前几天遇到了从我本机2008R2上备份的一个数据库还原到2008上面时报错: 从运行版本10.50.2500(2008R2是10.50)和10.00.1600(2008是10.00)中可以看出这个版本不兼容问题,大部分情况下,从低版本升级到高版本,只要不是跨度

oracle 11.1.0.7版本也会出现access$表丢失导致数据库无法启动

下面我们来看看oracle 11.1.0.7版本也会出现access$表丢失导致数据库无法启动,有需要了解的朋友可以进入看看吧. 有网友咨询数据库启动报ora-01092:ORACLE 实例终止.强制断开连接,请求帮忙处理 数据库版本 Trace file d:appadministratordiagrdbmsorclorcltraceorcl_ora_5648.trc Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64b

ios 系统声音-系统声音使用MPVolumeView在8.4版本可以获取到系统音量的值,但在9.0的时候就获取不到

问题描述 系统声音使用MPVolumeView在8.4版本可以获取到系统音量的值,但在9.0的时候就获取不到 直接上代码: MPVolumeView volumeView = [[MPVolumeView alloc] init]; UISlider volumeViewSlider = nil; volumeView.frame = CGRectMake(-1000, -100, 100, 100); volumeView.hidden = NO; for (UIView view in [v

在基于RedHat与Debian的系统上安装Wine 最新的开发版本

在基于RedHat与Debian的系统上安装Wine 最新的开发版本 Wine,一个在Linux平台上非常受欢迎并且强大的开源应用,有了它,我们可以在Linux平台上完美运行Windows应用与游戏. 在Linux上安装Wine(开发版本) WineHQ团队,近期宣布了一个新的开发版本Wine1.7.29.这个版本带来了诸多重要的特性,并且修复了44个bug. Wine团队几乎每周都会发布新的开发版本,并且加入许多新特性以及修复漏洞.每个新版本都会支持新的应用与游戏(Windows),这使得Wi

unity3d 5.0的布料系统,基本操作已经不同于4版本了,请教一下基本操作为啥?

问题描述 unity3d 5.0的布料系统,基本操作已经不同于4版本了,请教一下基本操作为啥? 感激哦.就是基本的设置咋搞,5中没有出现4中的平面 解决方案 http://www.ceeger.com/Components/class-InteractiveCloth.html

苹果目前在Mac OS X系统里已经远程屏蔽了所有版本的Adobe Flash Player插件

摘要: 出于安全顾虑,苹果目前在Mac OS X系统里已经远程屏蔽了所有版本的Adobe Flash Player插件.包括刚发布的16.0.0.235,以及较老版本13.0.0.259,都在屏蔽名单中.用户在使用Safari浏览器访问fl 出于安全顾虑,苹果目前在Mac OS X系统里已经远程屏蔽了所有版本的Adobe Flash Player插件.包括刚发布的16.0.0.235,以及较老版本13.0.0.259,都在屏蔽名单中.用户在使用Safari浏览器访问flash内容时,将会收到插件

Oracle服务端和客户端版本补丁不一致造成Tuxedo应用程序出core案例

这是一个CU**系统调用的查询天气预报的Tuxedo服务,Oracle Pro*C程序,连接的是Oracle 10.2.0.4库,出现问题的现象是不定时的产生core,服务down,触发Tuxedo服务的自动重启机制,但一般MAXGEN配置是100,即1天内若重启100次后服务就不会自动重启了,只能人工干预,每次重启后会好一阵,且该服务已经由被同步调用改为异步调用,因此实际业务上影响不大,只是几乎每天都会有自动重启的报警. 查看产生的core文件,如下是其堆栈信息, 根据提示的应用程序行,找到应