bonjour à tous et à toutes,
Voilà j'ai 2 tables sous Oracle : Personne et Presente, je voudrais automatiser un champ appelé NB_PRE qui compte le nombre de présentateurs pour une émission : voiçi la structure des deux tables :
Personne(CodPers,Nom,Prénom,Spécialité,NCh,Nb_Emis);
Présente(CodEmis,CodPers,Nb_Pre);
J'ai écrit ce trigger sur l'évènement Avant Insertion qui fonctionne mais qui me laisse toujours la dernière ligne saisie non renseignée vu qu'elle n'est pas encore connue dans la table comment faire ?
Voiçi le code du trigger :
Le problème est donc que la ligne non renseignée est la ligne que je suis en train de saisir, j'ai essayé d'écrire un trigger sur l'évènement après insertion mais ça ne marche pas .
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
28
29 CREATE OR REPLACE TRIGGER "Enr_Presente_NB_PRE_3" before insert on Presente for each row declare wnb_pre number(2); wnb_pre1 number(2); wcodemis number(2); wcount number(2); begin içi je compte le nombre de lignes correspondant à la nouvelle saisie select count(*) into wnb_pre from Presente where Presente.codemis=:new.codemis; içi si la table n'est pas vide je compte le nombre de lignes quand le champ nb_pre n'est pas renseigné select count(*) into wcount from presente; if wcount <> 0 then select presente.codemis into wcodemis from presente where presente.nb_pre is null; end if; select count(*) into wnb_pre1 from presente where presente.codemis=wcodemis; update presente set nb_pre=wnb_pre1 where presente.codemis=wcodemis; update Presente set nb_pre=wnb_pre + 1 where presente.codemis=:new.codemis; end; / ALTER TRIGGER "Enr_Presente_NB_PRE_3" ENABLE /
Si quelqu'un a une idée.
MErçi
Partager