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