roblema de atualização em lote do JDBC

Tenho um requisito ligeiramente exclusivo com a API Java-JDBC junto com o Oracle Database. Tenho autoCommit como padrão, o que é verdadeiro para Oracle e estou usando o exemplo semelhante a esteligaçã.

No entanto, quando adiciono, digamos, 1000 lotes e digamos que cada um deles é uma pastilha. E vamos supor que cerca de 20 registros violaram algumas restrições, quero que os 980 restantes sejam COMPROMETIDOS (e daqui em diante visíveis para outras consultas usando qualquer outra conexão) no banco de dados e ignorem os 20 registros. No exemplo acima, quando uma linha viola qualquer transação,mesmo quando eu confirmo no bloco catch, a transação é confirmada apenas até a primeira falha.

Sei que as atualizações em lote devem ser feitas SOMENTE quando você tiver certeza de que todas as linhas serão processadas e o processamento de exceções não for o caso, mas estou planejando PATCH para um banco de dados existente, para que algum tipo de "má prática" seja aceitável :) será muito apreciado.

**** MAIS DETALHES ***

Usar a inserção / atualização simples não está bem, pois estou processando perto de 3 milhões de linhas, por isso estou fazendo um lote a cada 1000 registros. Simplesmente adicionar 1000 inserções em loop (ignorando exceções) leva muito mais tempo (cerca de 5 segundos para cada 1.000 registros), em oposição à atualização em lote <300ms.

Problema: Com o banco de dados Oracle, o Driver parece parar no primeiro FAILURE, ou seja, quando 1000 linhas são agrupadas e a 100ª falha, eu quero que ela continue até a 1000ª linha. Eu acha que isso não pode ser feito no JDBC (com Oracleligaçã indica que apenas alguns bancos de dados suportam esse recurso e provavelmente o Oracle não é um

questionAnswers(14)

yourAnswerToTheQuestion