gpt4 book ai didi

java - Java 的 SQL 解析器库 - 检索 SQL 语句中存在的表名列表

转载 作者:行者123 更新时间:2023-12-02 09:39:14 26 4
gpt4 key购买 nike

我正在寻找一个 SQL 库,它将解析 SQL 语句并返回 SQL 语句的某种对象表示形式。我的主要目标实际上是能够解析 SQL 语句并检索 SQL 语句中存在的表名列表(包括子查询、联接和联合)。

我正在寻找一个具有商业友好许可证(例如 Apache 许可证)的免费库。我正在寻找一个库而不是 SQL 语法。我不想构建自己的解析器。

到目前为止我能找到的最好的是JSQLParser ,以及 example他们给出的实际上非常接近我正在寻找的东西。然而,它无法解析太多好的查询(DB2 数据库),我希望找到一个更可靠的库。

最佳答案

我怀疑你会发现任何可以直接使用的预先写好的东西。问题在于 ISO/ANSI SQL 是一种非常复杂的语法 — 类似于 600 多个产生式规则 IIRC。

特伦斯·帕尔的 ANTLR parser generator (Java,但可以用多种目标语言中的任何一种生成解析器)有多种可用的 SQL 语法,包括一对用于 PL/SQL、一种用于 SQL Server SELECT 语句、一种用于 mySQL 和一种用于 ISO SQL。

不知道它们有多完整/正确/最新。

http://www.antlr.org/grammar/list

关于java - Java 的 SQL 解析器库 - 检索 SQL 语句中存在的表名列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5572793/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com