oracle - 调用函数时出现“java.sql.SQLException:索引处缺少 IN 或 OUT 参数:: 1”
问题描述
打电话时SimpleJdbcCall.withFunctionName
我得到java.sql.SQLException: Missing IN or OUT parameter at index:: 1
SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(myDataSource)
.withCatalogName("package_name")
.withFunctionName("x");
String res = simpleJdbcCall.executeFunction(String.class, in);
SimpleJdbcCall 参数为:
MapSqlParameterSource in = new MapSqlParameterSource();
in.addValue("1", "a", Types.VARCHAR);
in.addValue("2", b, Types.NUMERIC);
in.addValue("3", c, Types.VARCHAR);
in.addValue("4", "d", Types.VARCHAR);
in.addValue("5", e, Types.NUMERIC);
in.addValue("6", "f", Types.VARCHAR);
in.addValue("7", g, Types.NUMERIC);
in.addValue("8", h, Types.NUMERIC);
in.addValue("9", null, Types.NUMERIC);
Oracle函数声明:
function x(1 in varchar2,
2 in number,
3 in varchar2,
4 in varchar2,
5 in number,
6 in varchar2,
7 in number default null,
8 in number default null,
9 in number default null) return varchar2 is
据我所知,我正在按照文档做所有事情。只有我的 Oracle 函数中的参数未声明为in
:
解决方案
推荐阅读
- java - GarbageCollectorMXBean getCollectionCount::返回已经发生的收集总数
- azure - Azure 下载旧证书,同时更新和颁发应用服务证书
- bash - 如何在不排序的情况下在列中查找唯一元素?
- python - Python Beautifulsoup 表 td 元素
- git - 排除子项目提交 Git
- c++ - 按值和堆栈大小限制返回对象
- r - R中lme和lme4的区别?和STATA也有区别?
- java - AssertJ - 如何检查一个元素是否在集合中?
- c++ - 如何在 Qml 着色器效果中将统一浮点数组传递给片段着色器?
- ibm-integration-bus - 如何找到 HTTP 请求节点的根本原因 - 间歇性抛出 SocketException:连接重置?