Travail avec les contraintes
Avant de dévalider une contrainte, prenons pour exemple la table
suivante :
Création de la table
Pour effectuer une saisie, nous dévalidons la contrainte, via l'ordre
ALTER TABLE ... DISABLE CONSTRAINT :
Travail sur la table
La saisie viole la contrainte et pourtant elle peut effectivement avoir lieu.
Voici le contenu de la table :
Visualisation du contenu de la table
Une fois la saisie de masse terminée, il est possible de re-valider la
contrainte via l'ordre ALTER TABLE ... ENABLE CONSTRAINT :
Validation de la contrainte
Création de la table de récupération des erreurs
Cette dernière doit être créée par le
développeur. Sa structure est imposée, mais pas son nom, ni le
nom des colonnes qu'elle contient.
Création de la table de récupération des erreurs
Cette création peut être automatiquement effectuée via le
script : ${ORACLE_HOME}/rdbms/admin/utlexcpt.sql. Dans ce cas, la table
s'appelle EXCEPTIONS.
Le principe consiste à demander la validation de la contrainte et la
copie des lignes incohérentes dans cette table.
Visualisation de la table rejet
La ligne mise en défaut se trouve identifiée (pour le
système) dans la table REJET :
Travail sur la table rejet
Nous savons que la ligne correspond à l'utilisateur John Durant. Il nous
reste à modifier cette ligne pour rester en accord avec la contrainte.
Validation de la contrainte