неверный номер или типы аргументов при вызове хранимой процедуры с использованием шаблона jdbc - PullRequest
0 голосов
/ 17 октября 2018

У меня есть такая хранимая процедура -

procedure         GET_WISLA_REPORT
(
       chkActiveWI varchar default null,
       chkWILastYr varchar default null,
       chkSLAMetPercentage varchar default null,
       chkAvgCompletionTime varchar default null,
       chkActiveWorkTypes varchar default null,
       prc out sys_refcursor
      )
      is
      ssql varchar2(32767);

Я создал метод для вызова этой хранимой процедуры -

 SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
                .withCatalogName("IIOWNER")
                .withProcedureName("GET_WISLA_REPORT")
                .declareParameters(
                        new SqlParameter("chkActiveWI", Types.VARCHAR),
                        new SqlParameter("chkWILastYr", Types.VARCHAR),
                        new SqlParameter("chkSLAMetPercentage", Types.VARCHAR),
                        new SqlParameter("chkAvgCompletionTime", Types.VARCHAR),
                        new SqlParameter("chkActiveWorkTypes", Types.VARCHAR),
                        new SqlOutParameter("prc", OracleTypes.CURSOR)
                )
                .returningResultSet("prc", BeanPropertyRowMapper.newInstance(WorkItemSLAReportDto.class));

        SqlParameterSource in = new MapSqlParameterSource().addValue("chkActiveWI", workItemSLADto.getActiveWorkItem());
        ((MapSqlParameterSource) in).addValue("chkWILastYr", workItemSLADto.getWorkItem_DateRange());
        ((MapSqlParameterSource) in).addValue("chkSLAMetPercentage", workItemSLADto.getSLAPercentage());
        ((MapSqlParameterSource) in).addValue("chkAvgCompletionTime", workItemSLADto.getAvgCompletionTime());
        ((MapSqlParameterSource) in).addValue("chkActiveWorkTypes", workItemSLADto.getActiveWorktype());

        Map<String, Object> result =
                jdbcCall.execute(in);
        System.out.println("result: " + result);
        List<WorkItemSLAReportDto> workitemslareport =  (List) result.get("prc");
        System.out.println(workitemslareport.get(0).ActiveWorkItems);
        return workitemslareport;

Но она выдает ошибку как - неправильный номер илитипы аргументов при вызове 'GET_WISLA_REPORT'

Пожалуйста, помогите мне определить проблему.

...