gpt4 book ai didi

oracle - 通过 Hibernate 获取 PL/SQL 函数的返回值

转载 作者:行者123 更新时间:2023-12-02 08:33:24 25 4
gpt4 key购买 nike

我在 Oracle 数据库中有一个无法更改的 PL/SQL 函数。该函数采用一个标识实体的参数,创建该实体的副本,然后返回副本的 ID。这看起来像

函数 copy_entity(id IN NUMBER) 返回数字

我需要从 Hibernate 调用这个函数。我尝试使用类似的内容创建一个命名 SQL 查询

调用 copy_entity(:id)

作为查询,但从中我似乎无法获得函数的返回值。 Hibernate 的“返回标量”和类似选项需要返回列名,而我没有列名。这引导我

选择 copy_entity(:id) AS newEntityId

使用 newEntityId 作为列名的“return-scalar”,但这也不起作用,因为 Oracle 然后抛出一个异常,我无法在 SELECT 中调用 INSERT(以保存副本)。

有什么方法可以获取这样的 PL/SQL 函数的返回值吗?该函数实际上要复杂得多,并且应用程序的其他部分仍然需要,因此重写它并不是一个真正的选择。

最佳答案

我希望/认为您可以使用匿名 PL/SQL block :

开始 :myresult = copy_entity(:id);结束;

现在您已获得“列名称”myresult 和结果。

我从未使用过 hibernate ,所以我希望它能起作用。我不知道Hibernate的灵 active 如何。

关于oracle - 通过 Hibernate 获取 PL/SQL 函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1068974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com