Identifier les lignes de dépendances entre les tables lors d'une activation de FK
Erreur suivante :
ORA-39083: Echec de la création du type d'objet REF_CONSTRAINT avec erreur :
ORA-02298: impossible de valider (GC901.CFK) - clés parents introuvables
--> dans le schéma correspondant, @rdbms/admin/utlexcpt.sql
cette fonction créée une table EXCEPTIONS
--> Lancer l'ordre de création de FK en ajoutant EXCEPTIONS INTO EXCEPTIONS à la fin:
ALTER TABLE TABLE_NAME ADD CONSTRAINT "FK" FOREIGN KEY ("COLUMN_NAME") REFERENCES TABLE_NAME_DIST ("COLUMN_NAME") ON DELETE CASCADE ENABLE EXCEPTIONS INTO EXCEPTIONS
--> Puis faire une requête sur la table EXCEPTIONS
SQL> select * from EXCEPTIONS;
ROW_ID OWNER TABLE_NAME CONSTRAINT
------------------------------------------------------------------------------------------------------------------------
AAIQZkAAAAAEBjpAAF GC901 TABLE_NAME FK
--> Faire un delete sur la ligne correspondante
delete from TABLE_NAME where ROWID='AAIQZkAAAAAEBjpAAF';
commit
--> et relancer l'ordre de création de la FK sans EXCEPTIONS
ALTER TABLE TABLE_NAME ADD CONSTRAINT "FK_NAME" FOREIGN KEY ("COLUMN_NAME") REFERENCES TABLE_NAME_DIST ("COLUMN_NAME") ON DELETE CASCADE ENABLE
normalement c'est ok
D'où sort la table "EXCEPTION" ? Elle n'existe pas dans la base que j'utilise.
RépondreSupprimerJ'en déduit qu'il ne s'agit pas d'une table système d'Oracle mais bien d'une table que je dois créer.
Vous pouvez me le confirmer ?
Je pense que tout le monde se pose la question en lisant votre article.
"EXCEPTIONS" avec un "S". Je n'ai pas fait de faute lors de mes tests. Ma question est toujours d'actualité.
SupprimerBonjour,
RépondreSupprimer@rdbms/admin/utlexcpt.sql
cette fonction créée une table EXCEPTIONS ...