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 ;-)