OVH Cloud OVH Cloud

API pour decomposer une Chaine SQL ?

1 réponse
Avatar
pcouas
Bonjour,

Je recherche une API pour decomposer une chaine SQL, avec mots clef et champ ?

Merci d'avance
Philippe

1 réponse

Avatar
Arnaud W.
Plusieurs possibilités, selon ce que tu veux faire :

1) Analyseur ultra simple (ne supportant pas toute la grammaire SQL) :
http://lutinquery.labs.libre-entreprise.org/
(il a l'air ultra simple et pas très complet).
OU : analyseur fait main avec java.util.StringTokenizer par exemple.

2) Analyseur générique complet : JavaCC (générateur de parseur
lexicaux et syntaxiques) :
https://javacc.dev.java.net/
Dans la liste des grammaires, il y en a une pour le PL/SQL :
https://javacc.dev.java.net/servlets/ProjectDocumentList?folderID0
Tu obtiens alors un vrai parseur SQL complet.
Par exemple, http://www.experlog.com/gibello/zql/ est généré avec
JavaCC.

Mon avis perso : JavaCC est le mieux car il produit un parseur
générique et complet. Tu peux ensuite parcourir l'arbre correspondant
à ta requête en utilisant le design pattern "Visitor" (modèle de
conception visiteur).

J'espère que cela t'aidera.

Arnaud W.
http://awr.free.fr