BatchUpdateException: le lot ne sera pas résiliée

J'ai une application qui traite un très gros fichier et envoie des données à une base de données oracle (à l'aide de la version 6 de Java, oracle 9).

Dans une boucle, j'utilise un PreparedStatement ps et de créer toutes les instructions SQL générées avec ps.addBatch().

J'ai une situation où un BatchUpdateException bue est jeté quelque part au cours de la ps.executeBatch(). À ce stade, le lot s'arrête à être exécuté.

J'aimerais le lot exécution continue, de sorte que je peux alors vérifier les mises à jour défectueuses dans une méthode processUpdateCounts(bue.getUpdateCounts()).

La javadoc de classe de BatchUpdateException dit:

Après une commande dans un lot de mise à jour
ne parvient pas à exécuter correctement et qu'une
BatchUpdateException est levée, l'
le pilote peut ou ne peut pas continuer
à
le reste des commandes dans le
lot.

Est-il un moyen de faire respecter la poursuite ou dois-je modifier mon programme pour qu'il exécute l'instruction individuellement?

OriginalL'auteur faboolous | 2011-01-18