#java #sql #rest #spring-boot #jdbctemplate
#java #sql #отдых #весенняя загрузка #jdbctemplate
Вопрос:
[UPDATE AR.BATCH_JOB_CONFIG_DTLS SET KEY_NM = ?, KEY_VAL = ?, KEY_DESC = ?, LAST_UPDT_USER_CD = ?, LAST_UPDT_DTM = CURRENT TIMESTAMP WHERE BATCH_JOB_CONFIG_DTLS_ID = ? amp;amp; BATCH_JOB_CONFIG_ID = ? ];
nested exception is com.ibm.db2.jcc.am.SqlSyntaxErrorException: [jcc][10145][10844][3.69.66] Invalid parameter 7: Parameter index is out of range. ERRORCODE=-4461, SQLSTATE=42815
BATCH_JOB_CONFIG_DTLS_ID
ЯВЛЯЕТСЯ PK и BATCH_JOB_CONFIG_ID
является FK для таблицы. Оба типа Long
. вы видите проблему?
Комментарии:
1. У вас есть только шесть заполнителей (
?
) в инструкции. Обычно они нумеруются, начиная с 1 (я не знаю, почему это не 0). Так что не было бы 7, просто 1, 2, 3, 4, 5, и 6..2. Где должен быть размещен 7-й заполнитель?
3. Зачем она вам нужна? Заполнители управляются SQL, а не наоборот. Ваш SQL выглядит завершенным, и в него нужно вставить только шесть значений, поэтому, если SQL неверен, вам нужно указать только шесть значений для замены заполнителей.
4. Я отправляю это [ { «batchJobConfigDtlsId»: 600, «batchJobConfigId»: 0, «keyNm»: «fff», «keyVal»: «striwwwng», «keyDesc»: «sss», «lastUpdtUserCd»: «ddd» } ]
Ответ №1:
Проблема заключалась в ключевом слове ‘amp;amp;’ после предложения WHERE. Это должно быть ‘И’.