调用函数时出现“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);

简单的JdbcCall参数是:

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

据我所知,我正在按照 documentation 做所有事情。只有我的 Oracle 函数中的参数没有声明为 in

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)