gpt4 book ai didi

java - 函数处于无效状态 : Oracle with Jdbc

转载 作者:行者123 更新时间:2023-12-01 05:36:51 25 4
gpt4 key购买 nike

我有一个java字符串查询。我需要做的是通过 jdbc 触发该查询。查询是:

String strQuery= " CREATE OR REPLACE FUNCTION GET_CLOSE_DATE ( PARAM_DOCUMENT_ID IN NUMBER ) 
RETURN DATE AS
V_CLOSE_DATE DATE;
BEGIN
SELECT MAX(TOP_LEVEL_ELEMENT.CLOSE_DATE_TIME) INTO V_CLOSE_DATE
FROM TOP_LEVEL_ELEMENT WHERE TOP_LEVEL_ELEMENT.DOCUMENT_ID = PARAM_DOCUMENT_ID;
RETURN V_CLOSE_DATE;
END GET_CLOSE_DATE;";

我正在使用 JDBC

Statement stmt = con.createStatement();
stmt.executeUpdate(strQuery);

查询已成功执行,但当我尝试使用此函数时,它会抛出异常,指出 GET_CLOSE_DATE 函数处于无效状态。我也尝试过射击

alter function GET_CLOSE_DATE compile;

在触发创建函数查询后立即执行。两者都成功执行,但该函数仍然处于无效状态。请提出一些解决方案。

最佳答案

尝试此命令以查看与此函数关联的错误(如果有):

SELECT * 
FROM user_errors
WHERE name = 'GET_CLOSE_DATE';

编辑:

这可能是字符串中嵌入的 CR/LF。尝试连接 SQL 字符串,如下所示:

String strQuery= " CREATE OR REPLACE FUNCTION GET_CLOSE_DATE ( PARAM_DOCUMENT_ID IN" +
" NUMBER) RETURN DATE AS " +
" V_CLOSE_DATE DATE " +
...

关于java - 函数处于无效状态 : Oracle with Jdbc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052979/

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