当前位置: 首页 > 面试题库 >

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

周龙光
2023-03-14
问题内容

我正在寻找一个SQL库,该库将html" target="_blank">解析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。

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

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



 类似资料:
  • 问题内容: 是否有用于解析SQL语句的开源Java库? 如果可能的话,它应该是可定制的或足够灵活的,以能够解析(或至少忽略)特定于供应商的语法(例如Oracle表空间定义或MySQL的LIMIT子句)。 如果没有,严格遵守SQL标准也是可以的。 更新:我需要两件事: 提供到非SQL数据库的SQL接口(映射到内部API调用) 在将SQL移至实际数据库之前(例如Oracle)重写SQL 问题答案: A

  • 问题内容: 我正在寻找Java中的开源API来解析SQL / HQL查询,以便为我提供其中使用的列名和表名。我尝试使用JSQLParser,它为我提供了查询中使用的表名。但是我看不到支持获取查询中使用的列名的支持。还有其他API可以帮助我吗?我知道通用SQL解析器,但它似乎是付费的。 这是使用JSQLParser的代码片段,它为我提供了查询中的表名: 在此先感谢您的任何帮助。 问题答案: 使用JS

  • 问题内容: 我正在尝试执行这样的mysql查询 它显示这样的错误 我该如何实现? 问题答案: 在查询中动态表名的使用最好与 Prepared Staments一起使用 ,在mysql中也可以使用串联功能 您也可以针对删除查询执行此操作

  • 问题内容: 我想重命名表达式结果中的列。当然,以下操作无效: 由于我是SQL的新手,我想我只是缺少一个会导致答案的概念,工具或关键字。向正确方向的提示将不胜感激。谢谢! 更新 我正在寻找一种实现此目的的通用方法,并且特定于MySQL的技术绝对可以。 简而言之,我正在编写一个工具,用于将MySQL查询的结果“导出”到Google Spreadsheets(通过Google Data API)。有些查

  • 本文向大家介绍Mybatis中的动态SQL语句解析,包括了Mybatis中的动态SQL语句解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Mybatis中的动态SQL语句解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下   Mybatis中配置SQL有两种方式,一种是利用xml 方式进行配置,一种是利用注解进行配置。   Myb

  • 我想从sql where语句的列表框中获取所有选中的项,在按钮中我有一个代码 我有一个方法