Je souhaite développer une procédure pour le scénario suivant.gestion des erreurs/exceptions dans Oracle
J'ai une source, une cible et une table d'erreur. Les tables Target et Error contiennent tous les champs présents dans les tables source. Mais le type de données de tous les champs pour la table d'erreur est varchar. La table d'erreur n'a pas d'intégrité, de clé étrangère et d'autres contraintes. La table d'erreurs comporte également deux autres champs: Erreur no et message d'erreur. Maintenant, lorsque la procédure est exécutée en cas d'erreur lors de l'insertion d'un enregistrement dans la cible, cet enregistrement doit être déplacé vers la table d'erreurs. Le code d'erreur de la base de données et le message d'erreur doivent également être consignés dans les champs des tables d'erreurs, comme indiqué.
Comment puis-je développer une telle procédure?
Exemple de schéma de la table:
source table
src(id number
,name varchar2(20)
, ...)
target table
tgt(id number
,name varchar2(20) not null
, ...)
error table
err (id varchar2(255)
,name varchar2(255)
, ...
, errno varchar2(255)
, errmsg varchar2(255))
Quelle version d'Oracle utilisez-vous? En outre, pourriez-vous expliquer whey que vous voulez utiliser un mécanisme si horrible pour charger des données quand Oracle fournit plusieurs alternatives plus élégantes? – APC
Si vous vous interrogez sur les erreurs logiques dans les données sources, et non sur les erreurs pouvant être détectées par le SGBD, consultez l'instruction MERGE, par ex. ici: http://www.psoug.org/reference/merge.html – ThinkJet