日期:2014-05-18  浏览次数:20709 次

共享:SQL Server 到 Oracle 的SQL语法自动翻译(转换)器源码(Delphi)
下载:
http://download.csdn.net/detail/shaoyy/3694238

转换源码在SqlConvertToOracle.pas中,

该转换过程负则将SQL Server的 一些语法特性翻译为Oracle支持的形式,也包括常用的函数,

支持复杂的SQL,例如嵌套/子查询等。


这是小弟为了一个Oracle项目的应急之作,我们的系统(Delphi的三层架构)一直运行在sql server下面,

当时客户指定需要的是支持Oracle版本的应用系统,

这个系统不小,如果要将里面的SQL全部转换为Oracle,需要大量的时间及人力和物力,为了在短期

内完成任务,小弟想到了“自动翻译”的方法,其难度是可想而知的,不过幸好我们的系统设计还算

合理,所在的SQL都是由中间层一个统一的过程来执行的,在写好这个转换过程后,我在中间层那个执行

SQL的过程中对调用者传进的SQL进行转换后再执行,就基本完成了整个系统的SQL语法从SQL Server到Oracle的

兼容,呵呵,听起来有点不可思议。系统已经于3个月前上线,目前运行很稳定。

如果有人用得着或发现什么问题,请加我的QQ:229481711,同时请支持一下本人的报表控件作品(Ac Report):


http://download.csdn.net/detail/shaoyy/3674310


------解决方案--------------------
这个能翻译吗?
begin tran
merge tb_1 with(serializable) as a
using(select 100 as id) as b on a.id=b.id
when matched then update set a='a100' when not matched then insert (a) values ('a100');
commit tran
------解决方案--------------------
网上看到过一个正则表达式,从tsql 到 plsql 的转化
------解决方案--------------------
谢谢分享!
------解决方案--------------------
谢谢分享!!