SQL 解析器库 for Java [已关闭]

2022-08-31 07:49:53

是否有用于解析 SQL 语句的开源 Java 库?

如果可能的话,它应该是可定制的或足够灵活的,以便能够解析(或至少忽略)特定于供应商的语法(例如Oracle表空间定义或MySQL的LIMIT子句)。

如果没有,严格遵守SQL标准也很好。

更新:我需要这个来做两件事:

  • 为非 SQL 数据库提供 SQL 接口(映射到内部 API 调用)
  • 在SQL进入实际数据库之前重写SQL(例如Oracle)

答案 1

ANTLR3有一个可用的ANSI SQL语法。您可以使用它来创建自己的解析器。

ANTLR4有一个SQL语法


答案 2
  • JSqlParser
  • Trino的解析器是使用ANTLR4编写的,并且具有自己的不可变AST类,这些类是从解析器构建的。AST有一个访客和漂亮的打印机。

推荐