Saf*_*rah 2 oracle jsp stored-procedures function
我有一个函数,它接收 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:第 1 行,第 7 列:PLS-00221:'x' 不是过程或未定义 ORA-06550:第 1 行,第 7 列:PL/SQL:语句被忽略
我想,是的,我知道,这不是一个过程,而是一个函数!但为什么它认为这是一个程序呢?我应该如何运行我的代码?
你得到的错误,因为你正在试图调用一个过程,而不是一个功能,因为你还没有任何指示返回参数。
您需要一个占位符作为返回值;您的参数编号也需要保持一致:
String jobquery = "{ ?=call x(?, ?) }";
CallableStatement callStmt = conn.prepareCall(jobquery);
callStmt.registerOutParameter(1, OracleTypes.NVARCHAR);
callStmt.setString(2, "hello");
callStmt.setString(3, "world");
callStmt.execute();
| 归档时间: | 
 | 
| 查看次数: | 5600 次 | 
| 最近记录: |