gpt4 book ai didi

java - Spring JPA中调用oracle函数

转载 作者:行者123 更新时间:2023-11-30 05:49:47 25 4
gpt4 key购买 nike

我有这个

DECLARE
c number;
BEGIN
c := get_next_unlocked_id();
DBMS_OUTPUT.put_line('id: ' || c);
END;

该查询打印函数结果。但我需要在我的 Spring 数据 JPA 存储库或 entitiManager 中返回此结果。

我试试这个:

@Override
public Long getOld() {
Long id = (Long) em.createNativeQuery("SELECT get_next_unlocked_id() FROM DUAL").getSingleResult();
return id;
}

但我收到错误:

2019-01-10 15: 28: 25.768 ERROR 6724 --- [pool-1-thread-2] o.h.engine.jdbc.spi.SqlExceptionHelper: ORA-14551: the DML operation cannot be performed inside the request
ORA-06512: on "MY.GET_NEXT_UNLOCKED_ID", line 8

最佳答案

您在 select 中调用的函数 (get_next_unlocked_id) 尝试进行数据修改,但您尝试的方式不允许这样做。

问题在于您的解决方案似乎在“查询”,而实际上它正在修改数据。我假设你的函数增加了一些计数器或更新了一些东西?您收到的 ORA 错误代码非常具有描述性,这里是 longer explanation .

无论哪种方式的解决方案都是使用 CallableStatements来自 Java。

关于java - Spring JPA中调用oracle函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54128858/

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