我有一个PLSQL功能。 PKG_GAS_KT.GET_DEPTINFO(' {UserID}')此函数返回用户所在部门的名称。
现在,我已经在java中列出了UserID。如何通过所有UserId并获取相应用户的部门。 有没有办法在不将它放入for循环并对数据库进行不必要的调用的情况下执行此操作。也
CallableStatement callSt = con.prepareCall("{?= call PKG_GAS_KT.GET_DEPTINFO(?)}");`// Is this correct way to call my PLSQL function?
callSt.setInt(1,101);
callSt.registerOutParameter(2, Types.STRING);
callSt.execute();
Double output = callSt.getString(2);
感谢任何指导。 我无法改变PLSQL功能。
答案 0 :(得分:1)
最好更改PL / SQL功能。但是,如果你真的需要一个kludge,你可以试试这个:
从Java发出以下语句作为JDBC查询:
select ids.column_value id,
pkg_gas_gt.get_deptinfo(ids.column_value) deptinfo
from TABLE(SYSTEM.NUMBER_TBL_TYPE( ? ) ) ids;
...其中?
是您的参数,是您要传入的用户ID的JDBC数组。
查询的结果集将是每个ID以及函数的结果。该函数需要从SQL调用才能工作。但大多数都是。