APEX-AT-WORK no image

APEX Tabular Forms mit Before Insert Trigger

Von Tobias Arnhold 8.20.2012
In vielen meiner Projekte nutze ich Tabular Forms. Bei Standardspalten wie "geändert am" oder "geändert von" ist es leider nicht ohne weiteres möglich das SYSDATE und den APP_USER mitzugeben.

Der Grund liegt in den wenigen Einstellmöglichkeiten (bis mindestens APEX 4.1).  Es gibt nur einen Default Wert den ich setzen kann. Dieser wird aber nicht bei einem Update Prozess gezogen und der alte Wert bleibt bestehen.

Eine Lösung stellt hier ein "before insert or update"-Trigger dar:
CREATE OR REPLACE TRIGGER "TRG_NACHRICHTEN" before
  INSERT OR
  UPDATE ON TBL_NACHRICHTEN FOR EACH row BEGIN
  :NEW.geaendert_am := sysdate;
  :NEW.geaendert_von := UPPER(NVL(v('APP_USER'),USER));
END;