我有包含 sqlplus 特定脚本的 sql 文件:它包括/或 ;作为语句终止符,EXEC 执行存储过程等。
我需要从 java (jdbc) 执行这个脚本而不需要 sqlplus。
sql ant 任务/maven sql 插件无法处理不同的终止符或 EXEC 命令。
您知道不用运行 sqlplus 就能做到这一点的好方法吗?
最佳答案
我们遇到了同样的问题...简而言之,没有现成的解决方案:如果您打开 Ant或 Maven资源,你会看到他们正在使用一个简单的基于正则表达式的脚本拆分器,它适用于简单的脚本,但通常会失败,例如存储过程。
确实有针对PL/SQL的ANTLR解析器,比如Alexandre Porcelli's one —它们非常接近,但仍未准备好用作直接解决方案。
我们最终写成 yet another ad hoc splitter它知道一些 sqlplus 命令,如 /
和 EXIT
——它仍然很丑陋,但适用于我们的大多数脚本。
关于java - 从java运行sqlplus脚本的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6923482/