关于多数据库支持产品SwisSQL

本文介绍了支持多数据的产品SwisSQL,它可将Common SQL翻译为Dialect SQL。文中给出使用示例,展示其对不同数据库的转换结果。不过,该产品稳定性一般,部分重要SQL功能翻译有误,推测未经过充分产品应用测试,国内有产品在很多方面表现更好。

发现一个支持多数据的产品,也是这样的思路:
Common SQL -->(翻译) Dialect SQL

该产品的网站:
http://www.swissql.com/

下载下来安装后,安装目录下,有一个SwisSQLAPI.jar,这个jar中,有一个类:
com.adventnet.swissqlapi.SwisSQLAPI,这类就是完成翻译的功能。

例如:

String sql = "select top 10 * from t order by f1";
SwisSQLAPI api = new SwisSQLAPI(sql);
String db2_result = api.convert(SwisSQLAPI.DB2);
System.out.println(db2_result);
String oracle_result = api.convert(SwisSQLAPI.ORACLE);
System.out.println(oracle_result);
String mysql_result = api.convert(SwisSQLAPI.MYSQL);
System.out.println(mysql_result);
 
输出:
SELECT * FROM  t  ORDER BY f1  FETCH FIRST 10 ROWS ONLY 
SELECT *  FROM (SELECT * FROM  t  ORDER BY f1) WHERE  ROWNUM  < 11
SELECT * FROM  t  ORDER BY f1  LIMIT 10 

评述:
SwisSQL支持的数据库挺多的,但是其稳定性应该一般,一些重要的SQL功能都有翻译错误的。例如:
SELECT * FROM  T1 LEFT JOIN T2 ON T1.ID  = T2.ID
在Sybase、MS SQL Server的翻译结果显然是错的。
猜想,SwisSQL应该尚未经过产品应用的测试,或者只经过很少应用的检验。

该公司的客户很多,但不一定是使用了该产品来实现多数据库支持,而是作为辅助迁移工具吧。

国内公司有相应的产品,很多方面作得比SwisSQL好!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值