Je suit la structure du codeSuivi échoué transaction insertion/mise à jour en vrac/supprimer
PROCEDURE ..
PRAGMA EXCEPTION_INIT(dml_errors, -24381);
l_errors NUMBER;
BEGIN
-- busines logic
FORALL TABLE_1 do delete;
FORALL TABLE_1 do update;
FORALL TABLE_1 do insert;
FORALL TABLE_2 do insert;
FORALL TABLE_2 do update;
FORALL TABLE_2 do insert;
EXCEPTION
WHEN dml_errors then
--extract error indexes
END;
Chacune des offres de boucle forall avec une table séparée de la matrice-à-dire, la boucle qui supprime de table_1 traiterait une table de table_1_u index par pls_integer;
Chaque boucle a forall sauf exceptions keyword
Maintenant, comment puis-je extraire qui « pour » et a échoué « qui enregistrent dans cet indice a échoué ».
Pourriez-vous expliquer l'étape dans votre bloc d'exception sinon else. comment/wat à implémenter –
La valeur d'iStep change après chaque boucle forall, ainsi vous savez où il s'est écrasé. Le si/sinon si n'est pas nécessaire, je l'ai mis là pour vous donner une idée, mais je ne sais pas vraiment pourquoi vous voulez faire. Vous pouvez simplement afficher (dbms_output.put_line) l'étape. – Sebas