Comment insérer des données dans une table tout en journalisant les erreurs sans bloquer le traitement ?.
En utilisant le Package DBMS_ERRLOG. La procédure CREATE_ERROR_LOG va créer une table d'Erreurs.
Il est intéressant de positionner sur un traitement batch lourd (des milliers d'insertions), une table d'erreur, afin que la journalisation permette de poursuivre le traitement sans abandon, et ainsi consigner les erreurs dans une table.
Le Package DBMS_ERRLOG s’exécute 1 seule fois pour une table, ensuite pour chaque traitement sur cette table on choisit ou non d'utiliser la journalisation d'erreurs.
|
SQL > EXECUTE DBMS_ERRLOG.CREATE_ERROR_LOG('societe', 'societe_errlog'); |
|
SQL> INSERT INTO societe (SELECT * FROM societe) |
Cette instruction ne déclenche aucun message d'erreur, le traitement a pu se terminer.
|
SQL > SELECT ORA_ERR_MESG$, ORA_ERR_TAG$ FROM societe_errlog; |
|
SQL> DROP TABLE societe_errlog; |