Nós nos deparamos com o mesmo problema... Em resumo, não há soluções prontas para isso:se você abrir Ant ou Maven source, você verá que eles estão usando um divisor de script simples baseado em regexp que é bom para scripts simples, mas geralmente falha em, por exemplo, procedimentos armazenados.
De fato, existem analisadores ANTLR para PL/SQL, como o de Alexandre Porcelli — esses estão muito próximos, mas ainda não estão prontos para serem usados como uma solução drop-in.
Acabamos escrevendo mais um divisor ad hoc que está ciente de alguns comandos sqlplus como
/
e EXIT
— ainda é feio, mas funciona para a maioria dos nossos scripts.