Měl jsem před nedávnem stejný problém, několikrát jsem narazil na vaši otázku, když jsem hledal řešení, takže si myslím, že vám dlužím – zde jsou moje dosavadní zjištění:
Stručně řečeno, neexistují pro to žádná připravená řešení:pokud otevřete Ant nebo Maven zdrojů, uvidíte, že používají jednoduchý rozdělovač skriptů založený na regulárních výrazech, který je vhodný pro jednoduché skripty, ale obvykle selže např. uložené procedury. Stejný příběh s iBATIS, migrace c5 db atd.
Problém je v tom, že se jedná o více než jeden jazyk:aby bylo možné spouštět "SQL skripty", musí být člověk schopen zpracovat (1) SQL, (2) PL/SQL a (3) příkazy sqlplus.
Spuštění sqlplus
sám o sobě je skutečně cestou, ale vytváří konfigurační nepořádek, takže jsme se této možnosti snažili vyhnout.
Pro PL/SQL existují analyzátory ANTLR, jako je Alexandre Porcelli —jsou si velmi blízké, ale zatím na nich nikdo nepřipravil kompletní drop-in řešení.
Nakonec jsme napsali ještě další ad hoc rozdělovač
který si je vědom některých příkazů sqlplus jako /
a EXIT
— je to stále ošklivé, ale funguje pro většinu našich skriptů. (Všimněte si, že některé skripty, např. s koncovým --
komentáře, nebude fungovat – je to stále jen spletitost, nikoli řešení.)