Oracle trigger error ORA-04091

前端 未结 2 1725
感情败类
感情败类 2020-12-04 03:26

I get an error (ORA-04091: table DBPROJEKT_AKTIENDEPOT.AKTIE is mutating, trigger/function may not see it) when executing my trigger:

CREATE OR REPLACE TRIGG         


        
2条回答
  •  再見小時候
    2020-12-04 04:09

    You are modifying the table with the trigger. Use a before update trigger:

    CREATE OR REPLACE TRIGGER Aktien_Bilanz_Berechnung
    BEFORE INSERT OR UPDATE OF TAGESKURS OR INSERT OR UPDATE OF  WERT_BEIM_EINKAUF
    ON AKTIE
    FOR EACH ROW
    DECLARE
        v_bfr number;
    BEGIN
        v_bfr := :new.TAGESKURS - :new.WERT_BEIM_EINKAUF;
        :new.BILANZ := v_bfr;
        IF v_bfr < -50 THEN
          Raise_Application_Error(-20456,'ACHTUNG: The value (Nr: '|| :new.AKTIEN_NR || ') is very low!');
        END IF;
    END;
    

提交回复
热议问题