Ajouter un commentaire

angelo

Bonsoir,
si j'ai bien compris tu veux recuperer les informations d'une requetes provenant d'un fichier. Si tes reqêtes sont simples et si tu es sur qu'elles ont toujours la même structure tu peux utiliser l'exemple que j'ai utilise, par contre si tu veux gerer des requetes plus compliques comme
par exemple :

SELECT * FROM WHERE ID IN (SELECT ID FROM MYTABLE WHERE COL0='WHERE')

is il y a des requetes imbriques et WHERE est utilisé dans la condition SELECT mais aussi avec COL0='WHERE'. Il faut distinguer les 2 WHERE :

* le WHERE de la condition SQL
* le 'WHERE' dans COL0

En d'autres termes il faut definir une grammaire qui permettent de detecter les tokens. Pour cela tu peux utiliser ANTLR http://www.antlr.org/ par exemple qui te permet de definir une grammaire et ensuite de generer le parser/lexer JAVA.

Beaucoup de projet Open Source sont basés sur antlr. Je croies (mais pas sur a 100%) que Hibernate est base sur antlr pour definir la grammaire les requetes HBM.

Le liens http://www.antlr.org/grammar/list te donne des exmples de grammaires que tu peux ecrire.

Dans cette liste il y a la grammaire ORACLE http://www.antlr.org/grammar/ORACLE-7-SQL/sql.g dont tu pourrais t'e inspirer.

Mais je ne te cache pas que ca demande un investissement. Je suis en train d'etudier ANTLR pour mon projet de generation de code Akrogen http://akrogen.sourceforge.net/index.html et j'en bave pas mal meme si ANTLR est très puissant.

Bon courage

Angelo

Filtered HTML

Plain text

CAPTCHA
Cette question permet de vérifier que vous n'êtes pas un robot spammeur :-)
 W     W  U   U  M   M   CCC  III 
W W U U MM MM C I
W W W U U M M M C I
W W W U U M M C I
W W UUU M M CCC III