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.