从java运行sqlplus脚本的简单方法

m_v*_*aly 5 java sql oracle jdbc

我有sql文件,其中包含sqlplus特定脚本:它包含/或; 作为语句终止符,EXEC执行存储过程等.

我需要从java(jdbc)执行这个脚本而不需要sqlplus.

sql ant task/maven sql插件无法处理不同的终结符或EXEC命令.

你知道如何在不运行sqlplus的情况下做到这一点吗?

alf*_*alf 3

我们遇到了同样的问题...简而言之,没有现成的解决方案:如果您打开AntMaven源代码,您会看到它们正在使用一个简单的基于正则表达式的脚本拆分器,这对于简单的脚本,但通常在存储过程等方面失败。

\n\n

确实有用于 PL/SQL 的 ANTLR 解析器,例如Alexandre Porcelli 的一个\xe2\x80\x94,它们非常接近,但仍然没有准备好用作直接解决方案。

\n\n

我们最终编写了另一个临时拆分器,它可以识别一些 sqlplus 命令,如/EXIT\xe2\x80\x94 它仍然很丑陋,但适用于我们的大多数脚本。

\n