Announcement

Collapse
No announcement yet.

Ora-04098

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ora-04098

    Hallo!

    Ich hab ein Problem, und zwar hab ich folgenden Trigger geschrieben:
    Code:
    create or replace trigger gehalt Before Update of sal on emp
    for each row
    declare
    maximum salgrade.hisal%type;
    minimum salgrade.losal%type;
    
    begin
      select max(hisal), max(losal) into maximum, minimum from salgrade where hisal < :old.sal;
      dbms_output.put_line(maximum ||'   ' || minimum);
    end;
    /
    Trigger erstellt- funktioniert ohne Probleme... wenn ich jedoch nun ein Update mache:
    Code:
    UPDATE emp SET sal=3000 WHERE empno=7369;
    kommt der Fehler: ORA-04098: Trigger 'ALEX.GAENDERUNG' ist ungültig und konnte nicht neu bestätigt werden

    Was ist daran falsch?

    Lg

  • #2
    Der im Code vorgestellte Trigger heißt GEHALT, der ungültige Trigger GAENDERUNG, gibt es auf EMP vielleicht noch einen Trigger ?

    Andererseits wird der Trigger GEHALT vermutlich ORA-04091 "mutating trigger errors" produzieren, denn der Trigger betrifft die gerade geänderte Spalte. Um das zu verstehen und zu vermeiden gibt es viele Artikel im Web.

    Comment


    • #3
      Andererseits wird der Trigger GEHALT vermutlich ORA-04091 "mutating trigger errors" produzieren, denn der Trigger betrifft die gerade geänderte Spalte.
      Er selektiert eine andere Tabelle als emp. Das wird schon gehen.

      Dim
      Zitat Tom Kyte:
      I have a simple philosophy when it comes to the Oracle Database: you can treat it as a black box and just stick data into it, or you can understand how it works and exploit it as a powerful computing environment.

      Comment


      • #4
        oh, da habe ich mich wohl voll verguckt
        Also vielleicht doch Ursache 1?

        Comment

        Working...
        X