刚刚在DTP项目中发现了SQL Query Parser类,它看起来像一个伟大的(独特的)项目。
我的问题是我需要分析并查看是否可以合并一些在大系统中使用的非常多毛的SQL片段。我需要一个智能且功能强大的解析器,因此我可以执行准确的分析,并确定是否可以将这些片段连接在一起以提高性能。我已经想出了我需要进行的分析;但是,解析器as-is无法解析这些片段,因为它们使用特定的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特定提供程序正确注册?什么是正确的班级名称?
答案 0 :(得分:1)
签出名为SQLWorkBench / J源的项目。它们具有特定于数据库的SQL解析功能。