#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. Принимает ли ваша хранимая процедура входные параметры? Пожалуйста, поделитесь более подробной информацией (хранимая процедура, конфигурация задания и т.д.), Чтобы иметь возможность эффективно помочь вам.