Se ho uno script SQL c'è un modo per passare attraverso ed estrarre le colonne utilizzate e le tabelle di riferimento in una tabella come questa:Parse script SQL per estrarre i nomi di tabella e colonna
Script:
Select t1.first, t1.last, t2.car, t2.make, t2.year
from owners t1
left join cars t2
on t1.owner_id = t2.owner_id
uscita:
Table Column
owners first
owners last
owners owner_id
cars car
cars make
cars year
cars owner_id
Stai chiedendo se è possibile o se c'è un modo semplice? A meno che tu non possa limitare l'input a un sottoinsieme semplice e rigoroso della grammatica, dovresti definire la grammatica per SELECT e le sue espressioni associate ... http://www.h2database.com/html/grammar.html#select – THK
@THK Immagino entrambi. Sembra che questo succeda da qualche parte nel processo di esecuzione di SQL ed era curioso che qualcuno lo avesse trasformato in una libreria. – screechOwl
Sorprendentemente, non sembrano esserci parser indipendenti ampiamente accettati come autorevoli. Ci sono alcuni thread SO sull'argomento: http://stackoverflow.com/questions/660609/sql-parser-library-for-java. Python ha la libreria sqlparse ma non convalida la grammatica. – THK