我在 oracle 中有一个自定义函数,在删除记录后返回一个数字。我可以在 sql_plus 中获得一个值,例如
call my_function(4) into :out_number;
其中 out_number 是定义为数字的变量。
当我执行“PRINT OUT_NUMBER”时,我可以验证 out_number 是否有值。
我的问题是如何从 JPA 调用这个函数。
我试过
Query query = em.createNativeQuery("{call my_function(?)}");
query.serParameter(1, 4);
return query.executeUpdate();
并得到一个错误,基本上 my_function 未定义。如何获得 SQL_PLUS 上的 CALL...INTO 中的返回值?
如果这种方法不可取,有人可以推荐任何建议吗? JPA 是我目前唯一的选择。我可以创建一个存储过程,但我不确定是否可以从中获取返回值,因为不支持 OUT 参数。
提前感谢您的帮助!
最佳答案
我用它在oracle中执行 native 函数:
Query query = em.createNativeQuery("select my_function(:param) from dual");
query.setParameter("param", 4);
return query.getSingleResult();
关于java - 如何调用从 JPA 返回值的自定义 Oracle 函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6989263/