gpt4 book ai didi

oracle - 函数 x 不是过程或未定义

转载 作者:行者123 更新时间:2023-12-05 01:45:33 30 4
gpt4 key购买 nike

我有一个接收 2 个字符串输入并返回一个字符串输出的函数,我们称它为“x”,我试图在 jsp 网站上调用该函数,我已经完成了:

String jobquery = "{call x(?, ?)}";
CallableStatement callStmt = conn.prepareCall(jobquery);

callStmt.registerOutParameter(1, OracleTypes.NVARCHAR);
callStmt.setString(1, "hello");
callStmt.setString(2, "world");
callStmt.execute();

这给出了这个错误:

java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00221: 'x' is not a procedure or is undefined ORA-06550: line 1, column 7: PL/SQL: Statement ignored

我想,是的,我知道,这不是一个过程,而是一个函数!但是为什么它认为这是一个过程呢?我应该如何运行我的代码?

最佳答案

您收到该错误是因为您正在尝试调用过程而不是函数,因为您没有指示任何返回参数。

返回值需要一个占位符;您的参数编号也需要保持一致:

String jobquery = "{ ?=call x(?, ?) }";
CallableStatement callStmt = conn.prepareCall(jobquery);

callStmt.registerOutParameter(1, OracleTypes.NVARCHAR);
callStmt.setString(2, "hello");
callStmt.setString(3, "world");
callStmt.execute();

关于oracle - 函数 x 不是过程或未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41396177/

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