Trigger et table en Mutation
Bonjour à vous avec mon trigger je voudrais que l’insertion d’une nouvelle opération concerner calcule le nouveau solde du compte en se basant sur le montant de l’opération et je voudrais aussi laisser les traces pour chaque opération effectué par l employé voici un début de code
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 27 28 29
|
create or replace TRIGGER DECLANCHE
BEFORE UPDATE ON compte
FOR EACH ROW
DECLARE
mttop operation.mtt_op%type;
BEGIN
SELECT mtt_op into mttop from OPERATION where num_op = num_op;
if mttop > 0 THEN
UPDATE COMPTE set avoir_cpt = solde_cpt + ( SELECT mtt_op FROM operation )
WHERE num_cpt = :new.num_cpt ;
else
UPDATE COMPTE set avoir_cpt = solde_cpt - ( SELECT mtt_op FROM operation )
WHERE num_cpt = :new.num_cpt ;
End if ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
raise_application_error(-2001, 'numero de compte non valide non valide');
END; |
voici mes tables
Agence (code_ag, nom_ag, ville_ag, #mat_emp) ;
Employe (mat_emp, nom_emp, date_embauche, numtel_emp, mt_salaire_emp, #code_ag, #code_ag_dir)
Client (code_cli, nom_cli, numtel_cli)
Operation (num_op, lib_op, date_op, mtt_op, #mat_emp)
Compte ( num_cpt, nature_cpt, solde_cpt, avoir_cpt, #code_ag, #mat_emp)
Concerner (#num_op, #num_cpt, sens)
Problème dans mon Trigger
je crois avoir résolu le problème de Trigger jai juste remplacé le
Code:
select sens into sensop from concerner where SENS =SENS;
par
Code:
sensop:= :new.sens;
mais j ai un autre message d erreur provenant du Trigger
Erreur commençant à la ligne: 1 de la commande -
INSERT INTO CONCERNER (num_op, num_cpt, sens) VALUES (5, '0084', 1)
Rapport d'erreur -
Erreur SQL : ORA-01427: single-row subquery returns more than one row
ORA-06512: at "NGUIMBIS1.DECLANCHE", line 8
ORA-04088: error during execution of trigger 'NGUIMBIS1.DECLANCHE'
01427. 00000 - "single-row subquery returns more than one row"
*Cause:
*Action: