刚刚在DTP项目中发现了SQL Query Parser类,它看起来像一个伟大的(和独特的)项目。Eclipse数据工具项目 - SQL查询解析器
我的问题是,我需要分析,看看我是否可以合并一些大的系统中使用的漂亮毛茸茸的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特定提供程序正确注册?什么是正确的类名?
你怎么知道有一个DB2兼容的解析器?对于大多数语言解析器来说,一个真正的问题是它们实际上是一种非常具体的语言方言,然而由不同供应商生产的许多方言(例如,SQL2011 [标准],PL/SQL 8/9/10/11,MySQL,TSQL,DB2,它们都不同)。如果有人没有专门针对DB2方言(“我无法找到类.... db2。*”),那么它们可能根本就不存在。 – 2013-04-04 14:12:43
嗯,它[在文档中](http://www.eclipse.org/datatools/project_sqldevtools/sqltools_doc/SQL%20Query%20Parser%20User%20documentation.htm),并且IBM Data Studio据说使用它。 – 2013-04-04 14:23:35
仍然看着这个 - 文档显示的最接近的层次是'org.eclipse.datatools.enablement.ibm.db2',但仍然没有运气 – 2013-04-08 19:26:16