Spring SimpleJdbcCall 默认(可选)参数
2022-09-03 07:09:39
我正在尝试调用具有默认(可选)参数而不传递参数的存储过程,并且它不起作用。基本上与此处描述的问题相同。
我的代码:
SqlParameterSource in = new MapSqlParameterSource()
.addValue("ownname", "USER")
.addValue("tabname", cachedTableName)
.addValue("estimate_percent", 20)
.addValue("method_opt", "FOR ALL COLUMNS SIZE 1")
.addValue("degree", 0)
.addValue("granularity", "AUTO")
.addValue("cascade", Boolean.TRUE)
.addValue("no_invalidate", Boolean.FALSE)
.addValue("force", Boolean.FALSE);
我得到一个例外:
Caused by: org.springframework.dao.InvalidDataAccessApiUsageException: Required input parameter 'PARTNAME' is missing
at org.springframework.jdbc.core.CallableStatementCreatorFactory$CallableStatementCreatorImpl.createCallableStatement(CallableStatementCreatorFactory.java:209)
其中,PARTNAME 是符合此条件的可选参数。此外,我还可以在没有PARTNAME参数的情况下手动运行此过程。