java - Eclipse 数据工具项目 - SQL 查询解析器

标签 java sql eclipse parsing

最近刚刚在 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/

相关文章:

java - 在 IntelliJ 中浏览自动完成选项时查看完整的 javadoc

eclipse - -Dwtpversion 和 wtpversion 有什么区别?

java - 数组忽略 Null 作为值

java - 即使一个窗口仍然打开,如何强制删除cookie?

java - 用 Java 创建新字体

mysql - 在 MySql 中查找所选项目数量的最快方法?

sql - PIVOT XML - 动态提取字段到列

mysql Event每年运行一次计算

ruby-on-rails - 如何在 Aptana Studio Eclipse 插件中设置 Rails 服务器的环境变量?

java - Executors.newSingleThreadExecutor().execute(command)和new Thread(command).start()的区别;