bonjour,
je tiens à preciser que je suis débutante donc soyez indulgent !
voilà j'ai une table INTERVENANTS qui est la table mère d'une table INTER_INDEPENDANT et d'une table INTER_SALARIE et où jai spécifié un domaine TYPE ('SALARIE', 'INDEPENDANT')
J'ai voulu creer un trigger qui empêche la saisie dans la table INTER_INDEPENDANT si son type dans la TABLE INTERVENANTS n'est pas INDEPENDANT.
Le trigger fonctionne mais m'indique une erreur à la ligne 16 qui correspond au "END IF;" donc je ne comprends pas il me donne bien le message d'erreur de l'exception, mais me dit que ' erreur lors de l'execution du trigger...'
je ne sais pas comment utiliser le show error
voici le code
merci d'avance en plus je veux le faire pour salarie !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 CREATE OR REPLACE TRIGGER INDEPEND_TRIG BEFORE INSERT OR UPDATE ON INTER_INDEPENDANT FOR EACH ROW DECLARE TableSuperclasse META.nomTable%type; t varchar (20); pb EXCEPTION; BEGIN SELECT nomTable INTO TableSuperclasse FROM META WHERE idclasse = (SELECT IdSuperclasse FROM META WHERE nomTable = 'INTER_INDEPENDANT'); EXECUTE IMMEDIATE 'SELECT Type FROM ' || TableSuperclasse || ' WHERE IDINTERVRH= ' || :NEW.IDINTERVRH INTO t; IF t <> 'INDEPENDANT' THEN RAISE pb; END IF; EXCEPTION WHEN pb THEN RAISE_APPLICATION_ERROR (-20501,'Violation de la contrainte d''exlusivité'); END;
Partager