CowNewSQL多数据库翻译器在线演示已经开发完成,欢迎体验
[url]http://211.99.196.18:6666/cownewdemo[/url]

由于访问人数众多,如果暂时无法访问,请稍后再试。
目前已经支持SQLServer、DB2、MySQL、Oracle四种数据库管理系统。
CowNewSQL源码和二进制包可以从CowNew网站( [url]http://www.cownew.com[/url] )下载。
**********************************************
       由于种种原因,各个数据库系统的SQL 语句语法以及支持的函数都不尽相同,这造成了如下两个问题:(1 )使得系统在多个不同数据库之间移植变得非常困难,特别是需要维护多个数据库版本的时候;(2 )开发人员必须对各种数据库的语法差异非常了解,这加大了开发难度。
       虽然Hibernate 通过HQL 等技术部分的解决了跨数据库移植的问题,但是在对性能要求比较高的场合还是需要直接使用SQL 语句访问数据库的,在这种情况下如何编写能被不同数据库支持的SQL 语句就成了。目前解决这种差异的最常用的技术就是SQL 语句翻译,使用SQL 翻译器可以将SQL 语句翻译为在不同的数据库中支持的特定平台的SQL 语句。CowNewSQL 就是这样一款产品。
       CowNewSQL 简化了跨数据库产品的开发,比如取当前日期在MSSQL 中是“SELECT GETDATE() ”,在MYSQL 中是“SELECT NOW() ”,在Oracle 中是“SELECT SYSDATE FROM DUAL ”,使用CowNewSQL 以后您只要使用“SELECT NOW() ”,那么CowNewSQL 就会为您自动将其翻译为对应数据库平台支持的SQL 语句,而且CowNewSQL 的兼容性也非常好,比如“SELECT NOW() ”写成“SELECT GETDATE() ”同样可以被正确的翻译;取数据库前10 条记录,在MSSQL 中是“Select top 10 from T_1 ”、在MYSQL 中是“SELECT  LIMIT 0, 10 ”、在Oracle 中是“SELECT  FROM DUAL WHERE ROWNUM <= 10 ”,使用CowNewSQL 以后您只要使用“Select top 10 from T_1 ”,那么CowNewSQL 就会为您自动将其翻译为对应数据库平台支持的SQL 语句。
       CowNewSQL 还通过变通的方式对目标数据库不直接支持的语法进行了支持。比如MYSQL 是不支持“select * from t1 where fid in(select fid from t2 limit 0,5) ”这样在子查询中的Limit 语句的,CowNewSQL 通过将子查询进行二次结果集包装的方式巧妙的对其进行了支持,“delete from T_SaleInvoice where FId in(select top 5 FParentId from T_SaleInvoiceDetails) ”通过CowNewSQL 的翻译以后就成了“DELETE FROM T_SaleInvoice WHERE FId IN (select * from(SELECT FParentId FROM T_SaleInvoiceDetails LIMIT 0, 5 ) t_temp_sub) ”这样被MYSQL 支持的语法了;MYSQL 中没有提供计算两个日期之间月份差异的函数,CowNewSQL 通过组合其他日期函数的方式模拟了这个函数,这样使用者只要使用MONTHS_BETWEEN 函数即可了,无需关心内部的差异。
       CowNewSQL 支持如下几种类型的SQL 语句:CreateTable/DropTable/CreateIndex/DropIndex/Select/Insert/Delete/Update ;支持子查询、Join Union 等高级的SQL 特性;支持日期(包括取当前日期、从日期中提取任意部分、计算日期差异、日期前后推算等)、数学(包括取绝对值、取PI 值、四舍五入、对数计算、随机数等)、字符串(包括取子字符串、取字符串长度、字符串截断、大小写转换等)、基本数据处理(包括数字字符串互转、日期转字符串、非空判断等)等函数。