首页 > 解决方案 > 调用函数时出现“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在此处输入图像描述

标签: oraclejdbcspring-jdbcojdbcjdbc-odbc

解决方案


推荐阅读