首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >好的开源SQL解析器?

好的开源SQL解析器?
EN

Stack Overflow用户
提问于 2012-11-22 14:04:30
回答 2查看 756关注 0票数 3

Java应用程序需要支持数据库Oracle、DB2和MSS。涉及sql函数的某些查询的语法在不同的数据库中具有不同的语法。示例: oracle中的NULLIF()可能不适用于MSS。有没有开放源码的SQL解析器可以解析并将查询字符串转换为特定于数据库的sql?

EN

回答 2

Stack Overflow用户

发布于 2021-08-23 18:44:24

jOOQ有一个SQL解析器,它可以做你想要的事情。你可以在这里看到在线版本:https://www.jooq.org/translate。解析器还可以作为CLIAPI工作。举个例子:

代码语言:javascript
复制
System.out.println(
    DSL.using(SQLSERVER, new Settings()
            .withParseDialect(ORACLE)
            .withTransformTableListsToAnsiJoin(true))
        .parser()
        .parse("select nvl(a.z, 1) from a, b, c where a.x = b.x(+) and a.y = c.y")
);

这将打印以下内容:

代码语言:javascript
复制
select coalesce(A.Z, 1)
from A
  join C
    on A.Y = C.Y
  left outer join B
    on A.X = B.X;

jOOQ是开源关系型数据库管理系统的开放源码,并且有其他数据库产品的商业驱动程序。我知道你可能在寻找一个完全开放源码的库,我只能提供给你一个部分开放源码的库,也许其他人会发现这个答案很有用。

免责声明:我为jOOQ背后的公司工作。

票数 1
EN

Stack Overflow用户

发布于 2012-11-22 16:31:00

@hd1有一个正确的问题:你想要实现什么?

链接:

  • Eclipselink
  • Hibernate
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13506722

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档