首页 > 解决方案 > JDBC:像过程一样调用 Oracle 函数

问题描述

我使用 Oracle 程序并对其进行批处理。

CallableStatement st = con.prepareCall ("{call MyProc (123)}");
...
st.addBatch ();

现在该过程被转换为一个函数。因此批处理不再起作用,并且忽略返回值也不起作用。如果我不设置“?=”,则找不到该功能。

CallableStatement st = con.prepareCall ("{? = call MyFunc (123)}");

但是如果没有批处理,运行所有调用需要很长时间。我必须做很多。

那么有没有一种方法可以在不触及函数的情况下忽略 JDBC 级别的返回值?我想要我的批处理。

标签: oraclejdbcplsql

解决方案


您当然可以使用 Oracle 语法并忽略 PL/SQL 块中的函数值。

像这样的东西

con.prepareCall("""
declare
 v_ignore number;
begin
  v_ignore := MyFunc (?);
end;""")

推荐阅读