Frage von DeloxD, 14

SQL before update trigger funktionier nicht?

Der Trigger soll überprüfen ob der neue Gehalt nicht über 10% des alten liegt

CREATE OR REPLACE TRIGGER salaryCorr before UPDATE of sal on EMP FOR EACH ROW

BEGIN if :new.sal> :old.sal+((:old.sal/100)*10) then dbms_output.put_line ('Sal to high'); end if;

end salaryCorr;

Trigger compiliert auch, aber bei einem Update zeigt er keine Wirkung, warum?

Antwort
von Unsinkable2, 14

Das kann etliche Ursachen haben. Im Regelfall kannst du aber davon ausgehen, dass der Trigger funktioniert. Auch, wenn er vielleicht nicht das erwartete Ergebnis bringt. 

Wo wird der ausgegebene Text aufgefangen und verarbeitet? (Nur allein ein "Text-Output" reicht nicht, um die Aktion zu stoppen.) Fügst du Bulks ein? (Trigger werden nur einmal pro "Aktion" ausgelöst.) Stimmen die Berechtigungen für den Trigger?

Und schließlich ein Tipp: Trigger sind langsam. Warum prüfst du nicht direkt bei der Einfüge-Operation?

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten