我的存储过程中有以下参数列表:
@ContractAgreement VARCHAR(100) = '1 Month',
@val1 VARCHAR,
@val2 VARCHAR
我有以下SimpleJdbcCall配置:
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(dataSource)
.withProcedureName(getProcedureName())
.returningResultSet(RESULT_SET, rowMapper)
.useInParameterNames("val1", "val2");
final MapSqlParameterSource param = new MapSqlParameterSource();
param.addValue("val1", "test1").addValue("val2", "test2");
jdbcCall.execute(param)
这会导致以下错误:
com.microsoft.sqlserver.jdbc.SQLServerException:过程或函数'njtest'需要参数'@ val2',这是未提供的。
但是,如果我从存储过程中删除参数中的“@ContractAgreement”,它可以正常工作。
有什么建议吗?