【发布时间】:2011-06-15 06:27:27
【问题描述】:
我需要一个解析器,它应该以格式返回列名及其对应的表名
列名表名
最好是一个 java 库,因为我不想深入到 SQL 解析的所有细微差别,它可以使实现更容易。
问候,
【问题讨论】:
-
SQL查询中有多个列怎么办?是否要用 CRLF 分隔?
-
已经有a question asked on this topic了,怎么又问了?
-
@ vineet 这个问题是较早提出的,要求较低。我已经检查了 ZQL 库,实际上当获得了将列名与表名匹配的新要求时,我已经对其进行了应用。这样做的目的是让老问题保持原样,因为这个问题以最好的方式得到了回答。并将这个稍微高级的要求放在一个不同的问题中,仅此而已。
-
恐怕同样的答案会成立。为此,您不需要与已经建议的 API/库不同的 API/库。
-
就像我在 duffymo 的回答中建议的那样。使用 ANTLR,您需要挂钩到解析器的适当部分,以收集此信息,以便您可以返回所需的结构。不那么重要的事实是,如果所有解析器都能理解语法,他们都会解析您的输入。解决方案的重要部分是您是否可以挂钩解析器并存储状态。