Bonjour
Voilà, j'ai un projet de BD à faire et je dois créer des triggers.
Le problème c'est que j'ai une erreur et comme on ne les a pas beaucoup vue en cours... difficile de corriger.
Donc si quelqu'un pouvait m'aider, je pense que c'est une erreur facilement visible pour un habitué (genre mauvaise déclaration ou au mauvais endroit).
Voilà le code de mon trigger :
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
23
24
25
26
27 create or replace trigger Medecin1 after insert on Medecin for each row declare specialite_labo number; specialite_service number; begin select specialiteService into specialite_labo from StructureInterne where :new.codeLabo = codeStructure; select specialiteService into specialite_service from StructureInterne where :new.codeService = codeStructure; if(NOT(specialite_labo IS NULL) and NOT(specialite_service IS NULL) and (specialite_labo <> specialite_service)) then delete from Medecin where INSEEMedecin = :new.INSEEMedecin ; raise_application_error(-20001,'Medecin ayant un Labo et un Service de specialites differentes'); end if; end Medecin1; / SHOW ERRORS
Je pense que les NOT(machin IS NULL) peuvent sûrement être améliorés en machin NOT NULL, ou autre chose, mais pour le moment le fichier compile, c'est à l'éxecution que le trigger plante.
Voilà le message d'erreur :
ERREUR � la ligne 1 :
ORA-01403: aucune donnnnnn�e trouv
ORA-06512: � "MABASE.MEDECIN1", ligne 7
ORA-04088: erreur lors d'exxxxx�cution du ddddd�clencheur 'MABASE.MEDECIN1'
Voilà, si quelqu'un pouvait m'aider à faire un trigger qui tourne comme il faut (même sans être optimisé, après je peux chercher tout seul), histoire de me débloquer ^^
Merci d'avance.
Partager