作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 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 函数中的任何内容。
最佳答案
最好更改您的 PL/SQL 函数。但是,如果您确实需要拼凑,您可以尝试以下操作:
从 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 调用才能正常工作。但大多数都是。
关于java - 如何从java调用PLSQL函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38981752/
我是一名优秀的程序员,十分优秀!