| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 
 | DECLARE
   --[EXCEPTION_INIT pour le FORALL]
   forall_dml_errors EXCEPTION;
   PRAGMA EXCEPTION_INIT(forall_dml_errors, -24381);
BEGIN
BEGIN        
   FORALL I IN  TAB_DBA_M.FIRST.. TAB_DBA_M.LAST SAVE EXCEPTIONS
     INSERT INTO T_DBA(TDBA_M, TDBA_SZ,TDBA_SU) VALUES( TAB_DBA_M (I) ,TAB_DBA_SZ (I),TAB_DBA_SU (I) );
    COMMIT;
 
   EXCEPTION
     WHEN forall_dml_errors THEN
       l_error_count_insert := SQL%BULK_EXCEPTIONS.count;
       DBMS_OUTPUT.put_line('Nombre d''erreur(s)  : ' || l_error_count_insert);
       FOR i IN 1 .. l_error_count_insert LOOP
         DBMS_OUTPUT.put_line('Erreur remontée: ' || i ||
          ' Index de la collection : ' || SQL%BULK_EXCEPTIONS(i).error_index ||
          ' Message: ' || SQLERRM(-SQL%BULK_EXCEPTIONS(i).ERROR_CODE));
       END LOOP;
   END;
 
END; | 
Partager