0

我正在寻找用于 MySQL 查询的 SQL 查询解析器。使用它我可以解析查询、修改查询对象并打印回修改后的查询

JSQL Parser 正是我所需要的,但它有 2 个主要问题,同时在列值中转义单引号 https://github.com/JSQLParser/JSqlParser/issues/167 https://github.com/JSQLParser/JSqlParser/issues/166

所以我正在寻找可以帮助我完成任务的开源替代品

我试过的 Presto-parser 无法解析更新查询

如果其他人知道任何其他可靠的 SQL 解析库,请告诉我

4

2 回答 2

1

关于JSqlParser

问题 166已修复。

不支持单引号的转义,但使用双单引号是支持的。因此,有人可以在解析之前使用''替换所有\' 。

编辑: 在 JSqlParser 的实际快照 0.9.5 中修复了问题 167 。

于 2015-09-08T05:41:16.490 回答
0

一年前,我搜索相同的东西,但最后我使用了另一种方法。这些是我发现解析 sql 的项目。

  • ANTLR。是常用的泛型解析器。它是一种解析器生成器。它根据一组规则编写 java 代码。有很多规则,比如西班牙语、java 或 sql。

  • JParsec。好像和上一个差不多。似乎已经存在 SQL 规则,但似乎不太好用。

  • ZQL。使用 JavaCC 自动生成解析 SQL 的 Java 代码。我测试了这个,但我无法让它按我的意愿工作。我认为该项目已停止。

  • sql解析器。它看起来不错,但是当我测试它时,我无法让它工作。该链接似乎不起作用,但我认为这是原始项目的一个分支

于 2015-09-09T07:44:35.580 回答