1 2 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