2013-04-04 68 views
5

剛剛在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特定提供程序正確註冊?什麼是正確的類名?

+0

你怎麼知道有一個DB2兼容的解析器?對於大多數語言解析器來說,一個真正的問題是它們實際上是一種非常具體的語言方言,然而由不同供應商生產的許多方言(例如,SQL2011 [標準],PL/SQL 8/9/10/11,MySQL,TSQL,DB2,它們都不同)。如果有人沒有專門針對DB2方言(「我無法找到類.... db2。*」),那麼它們可能根本就不存在。 – 2013-04-04 14:12:43

+0

嗯,它[在文檔中](http://www.eclipse.org/datatools/project_sqldevtools/sqltools_doc/SQL%20Query%20Parser%20User%20documentation.htm),並且IBM Data Studio據說使用它。 – 2013-04-04 14:23:35

+0

仍然看着這個 - 文檔顯示的最接近的層次是'org.eclipse.datatools.enablement.ibm.db2',但仍然沒有運氣 – 2013-04-08 19:26:16

回答

1

簽出名爲SQLWorkBench/J sources的項目。他們具有特定於數據庫的SQL解析功能。

+0

看起來像一個不錯的項目。它顯示了一些提示他們的解析器功能非常強大的特性(他們的'src/sql'目錄看起來很有前途。)唉,我的電腦中沒有db2驅動程序,它需要一個配置文件,而db2不在列表中。我會繼續調查,思考。 – 2013-04-04 15:06:03