小编Rah*_*lee的帖子

是否可以从jdbc调用pl/sql函数并按名称注册返回值?

我可以使用以下语法的call语句调用pl/sql函数:

String call = "{ ? = call p_some_package.some_function( ?, ?, ?, ?, ?) }";
CallableStatement cs = connection.prepareCall(call);
Run Code Online (Sandbox Code Playgroud)

但是我必须使用它们的索引传递参数,因为我必须注册返回值,它没有名称:

cs.registerOutParameter(1, OracleTypes.NUMBER);
cs.setInt(2, someInteger);
...
Run Code Online (Sandbox Code Playgroud)

但是在调用过程时,我可以提供参数名称,因为没有"无名"out参数,因为有一个函数:

cs.setInt("param_name", param_value);
Run Code Online (Sandbox Code Playgroud)

Oracle pl/sql参考声明,对于函数,Oracle会创建一个返回的额外OUT参数.所以我的问题是:是否可以传递此参数的名称或以某种方式为此参数指定名称,并使用它将参数传递给JDBC中的pl/sql函数,就像我为程序做的那样?

类似的问题,没有答案: Java命名参数的名称(用于Oracle JDBC函数结果)

java oracle plsql jdbc oracle11g

2
推荐指数
1
解决办法
1930
查看次数

标签 统计

java ×1

jdbc ×1

oracle ×1

oracle11g ×1

plsql ×1