У меня проблемы с этим.SQLException во время executeBatch(), когда я обрабатываю BatchUpdateException
Я пытаюсь перечислить некоторые данные о запросах, которые не были выполнены во время выполнения executeUpdate(), и я прочитал, что BatchUpdateException можно поймать, а затем получить updateCount, который сообщает вам, какие запросы выполнялись, а какие нет, но когда запрос терпит неудачу из-за плохого преобразования данных, он запускает SQLException, и я не могу поймать всю ошибку выполнения пакета.
Данные, необходимые для получения запросов из XML без каких-либо проверок.
Вот код:
try {
pSt_insertCabecera.executeBatch();
}
catch (BatchUpdateException buex){
int[] updateCounts = buex.getUpdateCounts();
for (int i = 0; i < updateCounts.length; i++) {
if (updateCounts[i] == Statement.EXECUTE_FAILED) {
logger.error(nombreClase + "[ESB_P]: Ha fallado la inserción de la cabecera de pedidos: " + cabecerasAInsertar.get(i).toString());
throw new SQLException();
}
}
}
SQLException выброшен кроме если это потому, что позже на код, который я поймать его, чтобы выполнить откат.
StackTrace выглядит следующим образом:
com.microsoft.sqlserver.jdbc.SQLServerException: Error al convertir una cadena de caracteres en fecha y/u hora.
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatementBatch(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtBatchExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeBatch(Unknown Source)
Я использую SQLServer 2012
Если вам нужно больше кода или информации, пожалуйста, обращайтесь.
Так много спасибо всем.
, что является исключением, что вы получите? –
Я получаю SQLException. Спасибо, что ответили так быстро! –
Можете ли вы plz опубликовать свой стек? –