Miałem ten sam problem nie tak dawno temu, kilka razy natknąłem się na twoje pytanie podczas szukania rozwiązania w Google, więc myślę, że jestem ci to winien — oto moje dotychczasowe ustalenia:
W skrócie nie ma na to gotowych rozwiązań:jeśli otworzysz Mrówka lub Maven źródła, zobaczysz, że używają prostego rozdzielacza skryptów opartego na wyrażeniach regularnych, który jest dobry dla prostych skryptów, ale zwykle zawodzi np. procedury składowane. Ta sama historia z iBATIS, migracjami c5 db itp.
Problem polega na tym, że w grę wchodzi więcej niż jeden język:aby uruchomić „Skrypty SQL”, trzeba umieć obsługiwać polecenia (1) SQL, (2) PL/SQL i (3) sqlplus.
Uruchamianie sqlplus
samo w sobie jest właściwą drogą, ale tworzy bałagan w konfiguracji, więc staraliśmy się uniknąć tej opcji.
Istnieją parsery ANTLR dla PL/SQL, takie jak Alexandre Porcelli — są bardzo zbliżone, ale nikt nie przygotował kompletnego rozwiązania typu drop-in na podstawie tych do tej pory.
Skończyło się na pisaniu jeszcze inny rozdzielacz ad hoc
który jest świadomy niektórych poleceń sqlplus, takich jak /
i EXIT
— nadal jest brzydki, ale działa z większością naszych skryptów. (Zauważ, że niektóre skrypty, np. z końcowym --
komentarze, nie zadziała — to nadal przeszkoda, a nie rozwiązanie).