我有一个包含sqlplus特定脚本的sql文件:它包含/或; 作为语句终止符,执行存储过程的EXEC等。
我需要从Java(jdbc)执行此脚本,而无需sqlplus。
sql ant task / maven sql插件无法处理不同的终止符或EXEC命令。
您知道不运行sqlplus的任何好方法吗?
我们遇到了同样的问题…简而言之,目前还没有现成的解决方案:如果打开Ant或Maven源代码,您会发现它们正在使用基于regexp的简单脚本拆分器,该脚本拆分器适用于简单脚本,但通常在例如存储过程上失败。
实际上,确实有用于PL / SQL的ANTLR解析器,例如Alexandre Porcelli的软管非常接近,但仍不能用作嵌入式解决方案。
我们最终编写了又一个临时拆分器,该拆分器知道一些sqlplus命令,例如/and,EXIT它仍然很丑陋,但适用于我们的大多数脚本。
/
EXIT