Configuration de la gestion des erreurs dans Write to DB

Le stage Write to DB dispose d'un port d'erreur qui vous permet de filtrer les enregistrements qui sont à l'origine d'erreurs de base de données lors de l'écriture d'un enregistrement dans une base de données, tel qu'une violation de contrainte de clé primaire ou une violation de contrainte unique. Ces enregistrements peuvent ensuite être acheminés vers un autre chemin dans le flux de données, tandis que d'autres enregistrements sont validés. Par exemple, si vous traitez 100 enregistrements et que les enregistrements 4, 23 et 56 entraînent une erreur de base de données, ces trois enregistrements seraient routés via le port d'erreur, tandis que les 97 autres enregistrements seraient validés dans la base de données.

Remarque : L'utilisation du port d'erreur est facultative. Si vous n'utilisez pas le port d'erreur, le job échouera si un enregistrement entraîne une erreur.
  1. Dans la palette, choisissez le stage du type qui doit gérer les enregistrements d'erreur (par exemple, Write to File) et faites-le glisser sur le canevas. Vous disposez de quelques options pour sélectionner un stage :
    • Pour écrire des enregistrements ayant échoué dans un fichier, faites glisser un des stages suivants sur le canevas : Write to File, Write to XML ou Write to Variable Format File.
    • Pour annuler simplement les enregistrements ayant échoué, faites glisser Write to Null sur le canevas.
  2. Reliez le port d'erreur sur Write to DB au stage qui doit gérer les enregistrements ayant échoué.

    L'exemple suivant présente le port d'erreur sur Write to DB connecté au stage Write to File. Dans cet exemple, les enregistrements entraînant une erreur lorsqu'ils sont écrits dans la base de données sont écrits dans le fichier indiqué dans le stage Write to File.

Lorsque vous exécutez le flux de données, les enregistrements entraînant une erreur sont acheminés vers le port d'erreur. Les enregistrements du port d'erreur contiennent les champs indiqués dans Write to DB plus les champs suivants :

Error.code
Ce champ contient le code d'erreur numérique renvoyé depuis la base de données. Par exemple, dans le cas de l'erreur ORA-00001: unique constraint ANKUSH.SYS_C0010018) violated, la valeur du champ Error.code serait 1. Pour obtenir la liste des codes d'erreur, reportez-vous à la documentation du logiciel de base de données.
Error.Message
Ce champ contient le message d'erreur renvoyé depuis la base de données. Par exemple : ORA-01034 ORACLE not available. Dans ce cas, ORACLE not available serait la valeur du champ Error.Message. Pour obtenir la liste des messages d'erreur, reportez-vous à la documentation du logiciel de base de données.
Error.SQLState
Ce champ contient le code SQLSTATE qui fournit des informations détaillées sur la cause de l'erreur. Pour obtenir une liste des codes SQLSTATE, reportez-vous à la documentation du logiciel de base de données.
Timestamp
Date et heure sur le serveur Spectrum™ Technology Platform auxquelles l'erreur s'est produite.
Nom d'utilisateur
Nom de l'utilisateur Spectrum™ Technology Platform ayant exécuté le flux de données.