使用可调用语句从java顺序调用2个oracle函数

问题描述

我有一个使用可调用语句调用 Oracle 函数方法,现在我需要调用一个存储过程,该过程使用第一个输出作为其输入。这就是我所做的。

try(Connection c = datasource.getconnection();
CallableStatement cs= c.prepareCall(storedProcedureQueryData.getQueryString());
CallableStatement cs1 = (storedProcedureQueryData1.getQueryString() == null ? null : c.prepareCall((storedProcedureQueryData1.getQueryString()))
{
Register out parameters here. Execute first callable statement. Take the output of the 
first function and set it as input for the second procedure then call second procedure using cs1.execute() 
Commit transaction
}

这种方法正确吗?我得到了结果,但在一段时间后将其部署到我的服务器后,我开始收到连接不可用请求在 5 分钟后超时,我看到一些数据库锁正在创建。我无法更改调用一个函数的方式,因为它从一开始就存在,我只需要添加对另一个函数调用,因为它需要第一个函数输出,所以我必须在它之后执行它。如果这是正确的方法,我们将不胜感激,或者我在这里遗漏了一些可能导致连接不可用或数据库锁定被创建的东西。 提交事务部分也是一个代码,它工作正常,没有创建数据库锁,也没有发生连接超时。我在 try-with-resources 块中添加了第二个可调用语句,并获取了第一个函数输出和传递给第二个,并调用 cs1.execute()。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)