18

ANTLR4 有可用的 sql 语法吗?如果是这样,我在哪里可以找到它?

有一个来自 ANTLR wiki 的链接,但链接已损坏:语法列表

4

4 回答 4

26

不,在撰写本文时,还没有 v4 SQL 语法。

所有 v4 语法都将放入以下 ​​Github 存储库(据我记得来自 ANTLR 邮件列表):https ://github.com/antlr/grammars-v4

现在这里的 v3 语法:http: //antlr3.org/grammar/list.html

编辑 - 2018 年 4 月

现在这里有一个用户贡献了 MySQL 语法:[dead link removed]

编辑 - 2020 年 2 月

MySQL、T-SQL、PL/SQL 和 SQLite 语法都可以在这里找到:https ://github.com/antlr/grammars-v4/tree/master/sql

于 2013-01-22T18:34:03.107 回答
8

目前,v4 也有很多 sql 语法:

  1. MySQL
  2. PL/SQL
  3. KvanTTT的 T-SQL (Microsoft SQL Server)
于 2016-03-26T19:25:52.673 回答
3

截至 2017 年 2 月 6 日,t-sql 有 ANTLR4 文件,但它是社区维护的,并不完整,我发现许多 SQL 语句对 SQLServer 有效但无法被此语法解析。

于 2017-02-06T21:30:47.170 回答
0

正如其他用户所提到的,网上有可用的 SQL 语法,但它们并不完整。我建议最好的方法是使用不完整的语法,并在需要时添加其顶部不存在的语法。例如,如果您需要翻译 join 子句并且该子句不存在,则只需将其添加到它的顶部即可。只需确保您编写的语法不会破坏任何现有语法

这就是我在实习中所做的,我必须制作一个将 SAS 脚本转换为 python 的工具。SAS 是专有的,它的语法不可用。所以我们从头开始构建一切。

于 2018-08-01T16:46:54.713 回答