2013-04-04 19 views
5

Niedawno odkrył klasy SQL Query Parser w projekcie DTP i wygląda na wspaniały (i niepowtarzalny) projekt.Projekt Narzędzia danych Eclipse - Parser zapytań SQL

Mój problem polega na tym, że muszę przeanalizować i zobaczyć, czy mogę połączyć trochę włochatych fragmentów SQL, które są używane w dużym systemie. Potrzebuję inteligentnego i sprawnego analizatora składni, dzięki czemu mogę przeprowadzić dokładną analizę i ustalić, czy mogę połączyć niektóre z tych fragmentów, aby poprawić wydajność. Już wymyśliłem analizę, którą muszę wykonać; jednak analizator składniowy nie jest w stanie przeanalizować tych fragmentów, ponieważ używają specyficznych funkcji db2 OLAP (over(), partition by itd.), więc muszę dołączyć wtyczki db2 do mojego kodu.

Jak to zrobić? Nie udało mi się znaleźć klas (org.eclipse.datatools.sqltools.parsers.sql.query.db2.*) w dowolnym miejscu, a także nie mam pojęcia, jak je zarejestrować (próbuję zrobić to ręcznie, ale oczywiście nie można znaleźć odpowiedniej klasy.)

to, co mam aktualnie robi, co wiem, jest źle, ale nie znalazłem dokumentacji o tym:

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); 

Czy należy podkreślić, jak uzyskać odpowiedni parser dla parsowania DB2?

Edycja: Prawdopodobnie właściwym pytaniem jest: w jaki sposób mogę się upewnić, że dany dostawca db2 jest poprawnie zarejestrowany? Jaka jest właściwa nazwa klasy?

+0

Skąd wiadomo, że istnieje parser zgodny z DB2? Prawdziwym problemem większości parserów językowych jest to, że są one w rzeczywistości bardzo specyficznym dialektem takich języków, a jednak istnieje wiele dialektów tworzonych przez różnych dostawców (np. SQL2011 [standard], PL/SQL 8/9/10/11, MySQL, TSQL, DB2, wszystkie z nich różne). Jeśli ktoś nie zaadresował konkretnie dialektu DB2 ("Nie mogę znaleźć klas ... db2. *"), To może po prostu nie istnieć. –

+0

Cóż, jest to [tutaj w dokumentacji] (http://www.eclipse.org/datatools/project_sqldevtools/sqltools_doc/SQL%20Query%20Parser%20User%20documentation.htm), a IBM Data Studio podobno używa tego. –

+0

Nadal patrzę na to - najbliższa hierarchia tego, co pokazuje dokumentacja, to "org.eclipse.datatools.enablement.ibm.db2", ale wciąż nie ma szczęścia. –

Odpowiedz

1

Zamówienie projektu o nazwie źródła SQLWorkBench/J. Mają one specyficzne dla bazy danych funkcje analizowania SQL.

+0

Wygląda na niezły projekt. Pokazuje pewne cechy wskazujące, że ich parser jest dość potężny (ich katalog src/sql wydaje się obiecujący). Niestety, nie mam sterowników na moim komputerze i wymaga profilu, a db2 nie znajdował się na liście . Będę badał, pomyślał. –

Powiązane problemy