Индекс параметра исключения вне диапазона: 0 в Java при использовании Spring Batch ItemReader

#spring #jdbc #spring-batch #sybase #spring-jdbc

Вопрос:

Я создаю пакетное задание Spring, для которого средство чтения элементов определено следующим образом:

 StoredProcedureItemReader<GenData> spir = new StoredProcedureItemReader<GenData>();

//Sybase data source specified
spir.setDataSource(ds1);

//Sybase stored proc : exec procedure_name
spir.setProcedureName(proc1);

spir.setRowMapper(objectRowMapper());
 

где objectRowMapper находится:

 private RowMapper<GenData> objectRowMapper() {
   return new RowMapper<GenData>() {

   @Override
   public GenData mapRow(ResultSet rs, int rowNum) throws SQLException {
      GenData gdo = new GenData();
      ResultSetMetaData rsmd = rs.getMetaData();
      int columnCount = rsmd.getColumnCount();
      ArrayList<String> colNames = new ArrayList<String>();

      for(int i = 1; i <= columnCount; i  ) {
          String name = rsmd.getColumnName(i);
          colNames.add(name);
          //object has a map where we put the <columnName, columnValue>
          //these are supposed to be dynamic in the code hence made like this
          gdo.objectData.put(name, rs.getString(name));
       }
      return gdp;
   }
}
 

Приведенный выше код выдает ошибку:
Выполнение хранимой процедуры; JZ0SB: Индекс параметра вне диапазона: 0; вложенное исключение-исключение java.sql.SQLException:JZ0SB:Индекс параметра вне диапазона: 0

Не мог бы кто-нибудь, пожалуйста, сказать, что это значит. Особенно число 0 в конце, так как это, кажется, самая большая подсказка здесь.

Спасибо!!

Комментарии:

1. Принимает ли ваша хранимая процедура входные параметры? Пожалуйста, поделитесь более подробной информацией (хранимая процедура, конфигурация задания и т.д.), Чтобы иметь возможность эффективно помочь вам.