如何调用从JPA返回值的自定义Oracle函数 [英] How to call a custom Oracle function returning a value from JPA

查看:109
本文介绍了如何调用从JPA返回值的自定义Oracle函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在oracle中有一个自定义函数,在删除记录后返回一个数字。我可以在sql_plus中获取一个值,例如

I have a custom function in oracle returning a number after deleting records. I could get a value in sql_plus such as

call my_function(4) into :out_number;

其中out_number是一个定义为数字的变量。

where out_number is a variable defined as number.

当我执行PRINT OUT_NUMBER时,我可以验证out_number是否有值。

I could verify out_number has a value when I do "PRINT OUT_NUMBER."

我的问题是如何从JPA调用此函数。

My question is how to call this function from JPA.

我试过像

Query query = em.createNativeQuery("{call my_function(?)}");
query.serParameter(1, 4);
return query.executeUpdate();

并且基本上没有定义my_function得到错误。如何获取返回值,如CALL ... INTO在SQL_PLUS上?

and got an error basically my_function is not defined. How can I get a return value as in CALL...INTO on SQL_PLUS?

如果不希望这种方法,有人可以推荐任何建议吗? JPA是目前我唯一的选择。我可以创建一个存储过程,但我不确定是否可以从中获取返回值,因为不支持OUT参数。

If this method is not desirable, can someone please recommend any suggestion? JPA is the only option for me at this moment. I could create a stored procedure but I'm not sure if I can get a return value from it since OUT parameters are not supported.

感谢您的帮助!

推荐答案

我用它在oracle中执行本机函数:

I used this to execute native functions in oracle:

Query query = em.createNativeQuery("select my_function(:param) from dual");
query.setParameter("param", 4);
return query.getSingleResult();

这篇关于如何调用从JPA返回值的自定义Oracle函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆