使用SimpleJdbcCall调用带有可选参数的存储过程不起作用

时间:2017-09-29 12:03:17

标签: java sql-server spring stored-procedures

我的存储过程中有以下参数列表:

@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”,它可以正常工作。

有什么建议吗?

0 个答案:

没有答案