Hatte vor nicht allzu langer Zeit das gleiche Problem, bin beim Googeln nach einer Lösung mehrmals auf Ihre Frage gestoßen, also denke ich, dass ich Ihnen etwas schuldig bin – hier sind meine bisherigen Ergebnisse:
Kurz gesagt, dafür gibt es keine fertigen Lösungen:Wenn Sie Ant oder Maven Quellen, werden Sie sehen, dass sie einen einfachen Regexp-basierten Skript-Splitter verwenden, der für einfache Skripte in Ordnung ist, aber normalerweise z. Gespeicherte Prozeduren. Dasselbe gilt für iBATIS, c5-DB-Migrationen usw.
Das Problem ist, dass mehr als eine Sprache beteiligt ist:Um "SQL-Skripte" auszuführen, muss man in der Lage sein, (1) SQL-, (2) PL/SQL- und (3) sqlplus-Befehle zu handhaben.
Ausführen von sqlplus
an sich geht das zwar, aber es schafft Konfigurationschaos, also haben wir versucht, diese Option zu vermeiden.
Es gibt ANTLR-Parser für PL/SQL, wie zum Beispiel Alexandre Porcelli's one – diese sind sehr ähnlich, aber bisher hat niemand eine vollständige Drop-in-Lösung auf der Grundlage dieser entwickelt.
Am Ende schrieben wir noch ein weiterer Ad-hoc-Splitter
die einige sqlplus-Befehle wie /
kennt und EXIT
– es ist immer noch hässlich, funktioniert aber für die meisten unserer Skripte. (Beachten Sie jedoch einige Skripte, z. B. mit nachgestelltem --
Kommentare, wird nicht funktionieren – es ist immer noch ein Flickwerk, keine Lösung.)