Имах същия проблем не толкова отдавна, натъкнах се на въпроса ви няколко пъти, докато търсих решение в гугъл, така че мисля, че съм ви задължен – ето моите открития досега:
Накратко, няма готови решения за това:ако отворите Ant или Maven източници, ще видите, че те използват прост сплитер на скриптове, базиран на regexp, който е добър за прости скриптове, но обикновено се проваля напр. съхранени процедури. Същата история с iBATIS, c5 db миграции и т.н.
Проблемът е, че има повече от един включен език:за да стартирате „SQL скриптове“, човек трябва да може да обработва (1) SQL, (2) PL/SQL и (3) sqlplus команди.
Изпълнява се sqlplus
самият той наистина е начинът, но създава бъркотия в конфигурацията, така че се опитахме да избегнем тази опция.
Има ANTLR парсери за PL/SQL, като този на Александър Порчели — те са много близки, но досега никой не е подготвил цялостно решение на базата на тях.
Накрая написахме още един ad hoc сплитер
който е наясно с някои sqlplus команди като /
и EXIT
— все още е грозен, но работи за повечето от нашите скриптове. (Въпреки това, имайте предвид някои скриптове, напр. със завършващ --
коментари, няма да работи - все още е грешка, а не решение.)