[pl/sql] probleme trigger oracle
Bonjour
j'ai une erreur lors de la creation de mes triggers et je n'ai pas encore trouvé la solution. Lorsque je lance mon fichier sql mes triggers sont crées avec erreurs de compilations.
J'ai donc tapé la commande show errors ce qui me donne
Code:
1 2
| 8/41 PLS-00049: variable de lien erronée 'VERSION.ID_FICHIER'
9/47 PLS-00049: variable de lien erronée 'UFDP.ID_FICHIER' |
J'ai regardé cela tombe aux lignes :
Code:
1 2
| delete from Version where id_fichier=:Version.id_fichier;
delete from UFDP where id_fichier=:UFDP.id_fichier; |
voici le code de mon trigger :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| CREATE OR REPLACE TRIGGER TrigSupprFichier
before delete on Fichier for each row
declare
-- déclaration des variables de gestion d erreur
erreur_message varchar2(50);
erreur_data exception ;
BEGIN
BEGIN
delete from Version where id_fichier=:Version.id_fichier;
delete from UFDP where id_fichier=:UFDP.id_fichier;
EXCEPTION
when no_data_found then
begin
erreur_message :='Erreur survenue' ;
raise erreur_data;
end ;
END;
EXCEPTION
when erreur_data then
raise_application_error(-20002,erreur_message) ;
when others then
raise_application_error(-100,'erreur');
END;
/ |
Si quelqu'un aurait une idée :roll:
Merci d'avance
Autre cas d'erreur "variable de lien erronée"
J'ai effectué la migration d'une form 9i vers 6i (eh oui ! pour certains environnements pas encore à la page, on est obligé de faire ça !!!). Au cours de cette migration, les types des éléments des blocs ont pris un coup.
Du coup, le champ blabla qui était au début de type ELEMENT TEXTE est devenu de type SON, et comme ce champ était appelé dans mon code PL/SQL (des triggers qui l'utilisaient), la compilation de ma form me donnait l'erreur :
"Variable de lien erronée B_MON_BLOC.blabla ...etc."
Ainsi, je conclus que cette erreur survient, entre autres, lorsque les types des éléments ne sont pas respectés (entre leur déclaration et leur utilisation).
Bon courage !