Bonjour,
J'ai créé sous Oracle un TRIGGER (sur la mise à jour du champ a dans une table Ma_table) au sein duquel je souhaite lancer une procédure pour mettre à jour (UPDATE) deux champs si a est supérieur à 1 (dans ce cas je veux mettre le champ u à 1 et le champ a reste à 1.) Or j'ai un message d'erreur qui me dit que ma syntaxe est incorrecte. Je précise que le trigger et la procédure compilent bien mais avec erreurs et que x, y et z sont les attributs qui forment la clé primaire de Ma_table.
Voici mon code :
CREATE PROCEDURE Ma_procedure (
m_x IN NUMBER(8 ),
m_y IN NUMBER(8 ),
m_z IN NUMBER(8 )
)
IS
BEGIN
UPDATE Ma_table SET (u = 1) AND (a = 1)
WHERE (x = m_x) AND (y = m_y) AND (z = m_z);
COMMIT;
END;
/
CREATE TRIGGER Mon_trigger UPDATE OF a ON Ma_table
FOR EACH ROW
BEGIN
IF (:new.a > 1) THEN
CALL Ma_procedure(:new.x,:new.y,:new.z);
END IF;
END;
/
Merci pour votre aide. Je suis preneur d'une quelconque indication ;-)
Partager