Hade samma problem för inte så länge sedan, stötte på din fråga flera gånger medan jag googlade efter en lösning, så jag tror att jag är skyldig dig – här är mina resultat hittills:
Kort sagt, det finns inga färdiga lösningar för det:om du öppnar Ant eller Maven källor kommer du att se att de använder en enkel regexp-baserad skriptdelare som är bra för enkla skript, men vanligtvis misslyckas på t.ex. lagrade procedurer. Samma historia med iBATIS, c5 db-migreringar, etc.
Problemet är att det finns mer än ett språk inblandat:för att kunna köra "SQL-skript" måste man kunna hantera (1) SQL-, (2) PL/SQL- och (3) sqlplus-kommandon.
Kör sqlplus
i sig är det verkligen så, men det skapar konfigurationsröra, så vi försökte undvika det här alternativet.
Det finns ANTLR-tolkare för PL/SQL, till exempel Alexandre Porcellis ena —de är väldigt nära, men ingen har förberett en komplett drop-in-lösning baserad på dem hittills.
Det slutade med att vi skrev ännu en ad hoc-delare
som är medveten om vissa sqlplus-kommandon som /
och EXIT
— Det är fortfarande fult, men fungerar för de flesta av våra manus. (Observera att vissa skript, t.ex. med efterföljande --
kommentarer, kommer inte att fungera – det är fortfarande en kluns, inte en lösning.)