ant执行sql文件

工作中遇到一个需求,需要通过java程序执行sql文件

刚开始使用druid解析sql,然后通过jdbc来执行。后来发现druid有很多时候解析不出来正确的sql语句。

后来换用通过shell脚本调用sqlplus执行,发现有一个比较棘手的问题。当sql文件中包含方法,存储过程或者视图时,如果该对象有编译错误,此时拿不到报错信息导致程序认为sql文件已经正确执行。

  通过查询ant的API发现其支持执行sql文件。需要以下代码即可实现异常抛出

sqlExecutor.treatWarningAsError(true)

特此记录一下。

PS:如上处理虽然可以中断脚本执行,但是已经编译错误的方法并不能回滚。

你可能感兴趣的:(ant执行sql文件)