Java的SQL解析器库-检索SQL语句中存在的表名列表
我正在寻找一个SQL库,该库将解析SQL语句并返回该SQL语句的某种对象表示形式。我的主要目标实际上是能够解析SQL语句并检索SQL语句中存在的表名列表(包括子查询,联接和联合)。
我正在寻找具有商业友好许可证(例如Apache许可证)的免费库。我正在寻找一个库,而不是一个SQL语法。我不想建立自己的解析器。
到目前为止,我能找到的最好的就是JSQLParser,他们给出的示例实际上与我要寻找的非常接近。但是,它无法解析太多好的查询(DB2数据库),因此我希望找到一个更可靠的库。
-
我怀疑您会发现任何可以使用的预写内容。问题在于ISO / ANSI SQL是一个非常复杂的语法-类似于600多个IIRC生产规则。
Terence
Parr的ANTLR解析器生成器(Java,但是可以以多种目标语言中的任何一种生成解析器)具有几种可用的SQL语法,包括一对PL
/ SQL语法,一个SQL Server SELECT语句,一个mySQL语法和一个用于ISO SQL。不知道它们有多完整/正确/最新。