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

标签 java sql oracle jdbc

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

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

sql ant 任务/maven sql 插件无法处理不同的终止符或 EXEC 命令。

您知道不用运行 sqlplus 就能做到这一点的好方法吗?

最佳答案

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

确实有针对PL/SQL的ANTLR解析器,比如Alexandre Porcelli's one —它们非常接近,但仍未准备好用作直接解决方案。

我们最终写成 yet another ad hoc splitter它知道一些 sqlplus 命令,如 /EXIT——它仍然很丑陋,但适用于我们的大多数脚本。

关于java - 从java运行sqlplus脚本的简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6923482/

相关文章:

java - 使用 Hibernate 映射作为 native 查询获取不完整的对象

java - 寻求面向对象编程的建议

java - 非常快地跳到双向链表的中间

SQL 查询连接 Oracle 中多行的列值

sql - 检查行是否存在的最快方法

java - 如何将 "\\r\\n"更改为 java 中的行分隔符

mysql - 对结果表进行 SQL 查询

SQL从XML字段获取数据

mysql - 没有 where 子句的更新

Oracle 关联数组类型无法在 USING 语句中使用(如果在包中声明了类型)