Pour récupérer un tableau à deux dimensions int qui contient le nombre des mises à jour par lots hétérogènes effectuées, appelez la méthode UpdateManyException.getUpdateCounts(). Ce tableau contient le compage de mises à jour qui serait renvoyé si le lot est terminé avec succès.
Les valeurs du tableau correspondent aux nombres de mises à jour effectuées ou à un élément Java™ EXECUTE_FAILED. Les informations contenues dans le tableau permettent de trouver où se trouvent les erreurs.
La valeur de la première dimension du tableau correspond au décalage de l'opération de mise à jour au sein de la mise à jour par lots hétérogènes.
La seconde dimension du tableau correspond au décalage de la ligne de données transmise à UpdateMany(), qui est à l'origine de SQLException.
com.ibm.pdq.runtime.exception.UpdateManyException : [pdq][10363][3.200.401] Une ou plusieurs exceptions se sont produites alors que pureQuery exécutait le lot d'instructions SQL hétérogènes.
La méthode getHeterogeneousUpdateCounts () permet de renvoyer un tableau à deux dimensions int de comptage des mises à jour effectuées pour identifier les instructions SQL en échec. Le tableau suivant répertorie le contenu du tableau :
| Indice de tableau | Nombre1 |
|---|---|
| [0][0] | 1 |
| [0][1] | 1 |
| [0][2] | 1 |
| [1][0] | 5 |
| [2][0] | EXECUTE_FAILED |
| [3][0] | 5 |
| [4][0] | EXECUTE_FAILED |
| [4][1] | EXECUTE_FAILED |
| [5][0] | 1 |
Le tableau suivant répertorie le contenu du tableau renvoyé par UpdateManyException.getHeteroBatchSQLExceptionArray() :
| Indice de tableau | Valeur |
|---|---|
| [0][0] | null |
| [0][1] | null |
| [0][2] | null |
| [1][0] | null |
| [2][0] | HeteroBatchSQLException contenant les
informations suivantes : com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : erreur pour l'élément de lot n° 1 : ds instruction n° 3 : une ou plusieurs valeurs dans l'instruction INSERT ou UPDATE, ou la mise à jour de clé externe déclenchée par une instruction DELETE ne sont pas valides car la clé primaire, la contrainte d'unicité ou l'index à entrées uniques identifié(e) par "1" empêche la table "DB2ADMIN.G" d'avoir des valeurs dupliquées pour la clé d'index. |
| [3][0] | null |
| [4][0] | HeteroBatchSQLException contenant
les informations suivantes : com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : erreur pour l'élément de lot n° 1 : ds instruction n° 5 : une ou plusieurs valeurs dans l'instruction INSERT ou UPDATE, ou la mise à jour de clé externe déclenchée par une instruction DELETE ne sont pas valides car la clé primaire, la contrainte d'unicité ou l'index à entrées uniques identifié(e) par "1" empêche la table "DB2ADMIN.H" d'avoir des valeurs dupliquées pour la clé d'index. |
| [4][1] | HeteroBatchSQLException contenant les
informations suivantes : com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : erreur pour l'élément de lot n° 2 : ds instruction n° 5 : une ou plusieurs valeurs dans l'instruction INSERT ou UPDATE, ou la mise à jour de clé externe déclenchée par une instruction DELETE ne sont pas valides car la clé primaire, la contrainte d'unicité ou l'index à entrées uniques identifié(e) par "1" empêche la table "DB2ADMIN.H" d'avoir des valeurs dupliquées pour la clé d'index. |
| [5][0] | null |
UpdateManyException.getBatchNonSpecificExceptions() renvoie une valeur null car il n'existe aucune exception SQLException non spécifique à une ligne.
Vous pouvez appeler les méthodes UpdateManyException.getCause() et UpdateManyException.getNextException() pour récupérer les exceptions HeteroBatchSQLException chaînées. La liste suivante répertorie les exceptions HeteroBatchSQLException renvoyées à l'aide des méthodes getCause() et getNextException().
com.ibm.db2.jcc.am.BatchUpdateException : [jcc][102][10040][3.63.46] Echec de lot. Le lot a été soumis, mais une ou plusieurs exceptions se sont produites sur un membre individuel du lot. Utilisez getNextException() pour récupérer les exceptions pour des éléments en lot spécifiques.
com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : erreur pour l'élément de lot n° 1 : ds instruction n° 3 : une ou plusieurs valeurs dans l'instruction INSERT ou UPDATE, ou la mise à jour de clé externe déclenchée par une instruction DELETE ne sont pas valides car la clé primaire, la contrainte d'unicité ou l'index à entrées uniques identifié(e) par "1" empêche la table "DB2ADMIN.G" d'avoir des valeurs dupliquées pour la clé d'index.
com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : erreur pour l'élément de lot n° 1 : ds instruction n° 5 : une ou plusieurs valeurs dans l'instruction INSERT ou UPDATE, ou la mise à jour de clé externe déclenchée par une instruction DELETE ne sont pas valides car la clé primaire, la contrainte d'unicité ou l'index à entrées uniques identifié(e) par "1" empêche la table "DB2ADMIN.H" d'avoir des valeurs dupliquées pour la clé d'index.
com.ibm.db2.jcc.am.SqlIntegrityConstraintViolationException : erreur pour l'élément de lot n° 2 : ds instruction n° 5 : une ou plusieurs valeurs dans l'instruction INSERT ou UPDATE, ou la mise à jour de clé externe déclenchée par une instruction DELETE ne sont pas valides car la clé primaire, la contrainte d'unicité ou l'index à entrées uniques identifié(e) par "1" empêche la table "DB2ADMIN.H" d'avoir des valeurs dupliquées pour la clé d'index.
null