zoukankan      html  css  js  c++  java
  • 关于多数据库支持产品SwisSQL

    发现一个支持多数据的产品,也是这样的思路:
    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好!!

  • 相关阅读:
    nginx rewrite 伪静态重写学习笔记
    正则表达式相关知识
    rpm的含义
    find命令的使用
    chmod的运用方式
    [GO]数组的比较和赋值
    [GO]二维数组的介绍
    [GO]变量内存和变量地址
    [GO]给导入包起别名
    阿里云负载均衡SLB 七层https协议 nginx 获取真实IP
  • 原文地址:https://www.cnblogs.com/jobs/p/22192.html
Copyright © 2011-2022 走看看