我需要解析 sql 语句并获取列名和表名。我尝试使用示例代码。我得到了表名,但我被困在为每个表获取列名。
问问题
19050 次
5 回答
3
如果您真的需要这样做,那么您应该考虑使用适当的解析器工具包,例如ANTLR。这是一个相当陡峭的学习曲线,但周围有其他人已经构建的 SQL 语法。
手动启动你自己的解析器会导致你在除了最基本的查询之外的任何事情上遇到一堆错误。
于 2013-05-24T11:27:58.610 回答
2
于 2013-05-24T12:16:31.010 回答
1
如果您有ResultSet
对象,您可以阅读Column names and Table Names
已触发的查询。
通过使用ResultSetMetaData
你get MetaData
的query
(如表名和列名)。
于 2013-05-24T11:35:39.340 回答
0
结帐基础解析器http://foundationdb.github.io/sql-parser/
另请注意,JSQLParser 不再在 SourceForge 上,而是在https://github.com/JSQLParser/JSqlParser/wiki维护
于 2014-05-03T00:00:07.300 回答
0
您将需要为您的 SQL 语法创建一个解析器。ANTLR 允许创建这样的解析器,但创建语法可能非常困难。
这是 ANTLR 的现有语法列表http://www.antlr3.org/grammar/list.html
它包含适用于您的 mysql、oracle SQL 的语法。
于 2013-05-24T11:32:27.130 回答