【问题标题】:antlr4 sql grammarantlr4 sql语法
【发布时间】:2013-01-22 17:22:05
【问题描述】:

ANTLR4 有可用的 sql 语法吗?如果有,在哪里可以找到?

有一个来自 ANTLR wiki 的链接,但该链接已损坏:grammar list

【问题讨论】:

    标签: antlr4


    【解决方案1】:

    不,在撰写本文时,还没有 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

    【讨论】:

    【解决方案2】:

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

    1. MySQL
    2. PL/SQL
    3. T-SQL (Microsoft SQL Server) KvanTTT

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2014-09-08
          • 2022-01-23
          • 2022-01-09
          • 1970-01-01
          • 2014-10-24
          • 1970-01-01
          • 1970-01-01
          • 2017-04-03
          • 2015-09-08
          相关资源
          最近更新 更多