SimpleJdbcCall跳过第一个输入参数

时间:2019-03-09 09:15:26

标签: spring-data-jpa spring-jdbc jdbctemplate java-stored-procedures simplejdbccall

我正在执行以下代码:

simpleJdbcCall.withSchemaName("SCHEMA_NAME") .withProcedureName(storedProcdure) .addDeclaredParameter( new SqlParameter("INPUT_PARAMS",Types.LONGNVARCHAR));

// Creating String of input numbers
if (!loanNumbers.isEmpty()) {
    for (String str : paramsList)
        finalInput = finalInput + str + ";";
    finalInput = finalInput + "'";
}
// Preparing map of input params for Stored Procedure
inputParams.put("INPUT_PARAMS", finalInput);
log.info("Input params for Stored Procedure :"+finalInput);

//Input Prepared and finally calling Stored Procedure
SqlParameterSource in = new MapSqlParameterSource(inputParams);
Map<String, Object> resultSet= simpleJdbcCall.execute(in);

如果FinalInput只有一个值,即。 '123467',SimpleJdbcCall将省略此第一个参数,但不会得到任何结果。如果我在任何IDE中运行相同的SP,对于相同的参数,我将得到结果。

如果它有两个以上的参数,即'123467; 98768',它将省略第一个参数(123467)并给出98768的结果。

这种行为的原因是什么,我们该如何解决。

0 个答案:

没有答案