最近刚刚在 DTP 项目中发现了 SQL Query Parser 类,它看起来是一个很棒(且独特)的项目。
我的问题是我需要分析并看看我是否可以合并一些在大型系统中使用的非常复杂的 SQL 片段。我需要一个智能且功能强大的解析器,以便我可以执行准确的分析并确定我是否可以将其中一些片段连接在一起以提高性能。我已经想出了我需要执行的分析;然而,解析器无法解析这些片段,因为它们使用特定的 db2 OLAP 函数(over()
、partition by
等)所以我需要将 db2 插件包含到我的代码中。
这是怎么做到的?我无法在任何地方找到类 (org.eclipse.datatools.sqltools.parsers.sql.query.db2.*
),而且我也不知道如何注册它们(我我正在尝试手动执行,但当然找不到合适的类。)
这就是我目前正在做的,我知道这是错误的,但我还没有找到关于它的文档:
SQLQueryParserManagerProvider provider = SQLQueryParserManagerProvider
.getInstance();
provider.registerParserManager(
"org.eclipse.datatools.sqltools.parsers.sql.query.db2",
"DB2 UDB", null, null);
SQLQueryParserManager parserManager = SQLQueryParserManagerProvider
.getInstance().getParserManager("DB2 UDB", null);
能否请您指出如何获得足够的解析器来解析 DB2?
编辑:可能正确的问题是,如何确保正确注册了 db2 特定提供程序?什么是正确的类名?
最佳答案
checkout 名为 SQLWorkBench/J sources 的项目。它们具有特定于数据库的 SQL 解析功能。
关于java - Eclipse 数据工具项目 - SQL 查询解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15813213/