2010-10-04 2 views
2

Je suis nouveau à pl/sql. quelqu'un peut-il me dire comment appeler la fonction pl/sql à l'intérieur d'un déclencheur.Comment appeler la fonction PL/SQL à côté d'un déclencheur

Je l'ai fatigué mais il donne une erreur quand je tente de l'exécuter.

DROP TRIGGER INTF_CONTROLLER_TREXE; 

CREATE OR REPLACE TRIGGER INTF_CONTROLLER_TREXE 
before insert ON INTF_CONTROLLER for each row 
begin 
BACKOFFICE_UPDATE(); 
end; 


CREATE OR REPLACE FUNCTION BACKOFFICE_UPDATE 
RETURN NUMBER IS 
tmpVar NUMBER; 

BEGIN 
    tmpVar := 0; 
    DBMS_OUTPUT.put_line ('HELLO'); 
    RETURN tmpVar; 


    EXCEPTION 
    WHEN NO_DATA_FOUND THEN 
     NULL; 
    WHEN OTHERS THEN 
     -- Consider logging the error and then re-raise 
     RAISE; 
END BACKOFFICE_UPDATE; 

J'ai essayé de l'exécuter en utilisant TOAD. il donne l'erreur suivante

PLS-00221: « BACKOFFICE_UPDATE » est pas une procédure ou est indéfini

+0

simplement votre information, les parenthèses vides() sont optionnelles en PL/SQL. –

Répondre

2

Vous devez stocker le résultat de votre appel de fonction dans une variable locale

For example: 
CREATE OR REPLACE TRIGGER INTF_CONTROLLER_TREXE 
before insert ON INTF_CONTROLLER for each row 
declare 
dummy NUMBER; 
begin 
dummy := BACKOFFICE_UPDATE(); 
end; 
+0

oups .. Cela fonctionne bien maintenant merci mec .. – nath

+0

Que Dieu bénisse avec cette réponse –

Questions connexes