1. Fügen Sie ein Datumsfeld hinzu.
2. Starten Sie im Kontextmenü der rechten Maustaste auf die Objektklasse den Befehl Objektregeln bearbeiten
3. Klicken Sie auf die Schaltfläche Neu, um eine neue allgemeine Objektregel zu definieren.
4.
Bestimmen Sie, ob der Trigger für jeden im aktuell zu ändernden
Datensatz (Zeilentrigger) oder einmalig für den aktuellen Vorgang
(Anweisungstrigger) auszuführen ist (a). Nur bei einem Zeilentrigger
können Sie auf die Werte der einzelnen Datensätze (:new... und :old...)
zugreifen.
5. Geben Sie Name (b) und Beschreibung (c) der Objektregel ein.
6.
Für den Fall, dass der Trigger im Falle eines Update-Statements nur
ausgelöst werden soll, wenn ein bestimmtes Feld geändert wurde, geben
Sie die Ausführungsspalte an (d). Das hat keine Auswirkungen auf INSERT-
oder DELETE-Statements. Wann immer Sie die Objektregel einer
Objektklasse zuordnen, müssen Sie sicherstellen, dass dieses Feld in der
Objektklasse definiert ist.
7. Ist es
erforderlich, dass andere Objektregeln vor dieser Objektregel oder
umgekehrt diese Objektregel unbedingt vor anderen ausgeführt werden
soll, bestimmen Sie die Ausführungsreihenfolge über die Priorität (e).
Dabei handelt es sich um eine Vorgabepriorität, die standardmäßig bei
Anwendung an der jeweiligen Objektklasse eingestellt ist, sich aber noch
individuell anpassen lässt.
8. Bestimmen Sie,
wann der Trigger auszuführen ist (f). Dabei wird unterschieden, bei
welchem Statement (INSERT, UPDATE und/oder DELETE) und ob vor oder nach
der Ausführung der Trigger auszuführen ist. Typisches Beispiel für vor
dem Einfügen: Prüfung und Korrektur der Werte. Typisches Beispiel für
nach dem Ausführen: wurde die Pflegemaßnahme "Baum fällen" als
ausgeführt deklariert, erhält der Datensatz des Baumes die Eigenschaft
GEFAELLT=1. Typisches Beispiel für ein AFTER-INSERT-Statement-Trigger:
sende Mails an die Verantwortlichen über den aktuellen Stand der
Hydrantenprüfung und zwar nicht eine Mail für jeden einzelnen defekten
Hydranten (das wäre ein Beispiel für AFTER INSERT-ROW-Trigger) , sondern
eine Mail mit allen betroffenen Hydranten.
9. Schreiben Sie den Trigger-Text (g) als PL/SQL (https://www.oracle.com/de/database/technologies/appdev/plsql.html).
In diesem Fall kanns kaum kürzer gehen, wenn auch die Änderung der
Geometrie zu null zur Änderung des Datumswertes führen soll:
declare
begin
:new.EBL_DATE_GEOMUPDATE := sysdate;
end;
Zwischen declare und begin definieren Sie etwaig erforderliche Variablen, z.B.
declare
variable1 varchar2(10) := 'Wert1';
variable2 number(1) := 0;
begin
[...]
end;
Wann immer Sie die Objektregel einer Objektklasse zuordnen, müssen Sie
sicherstellen, dass alle im Triggertext verwendeten Felder mit den Verweisen :old. und :new. in der Objektklasse definiert sind.
Bitte beachten Sie, dass die Änderung
einer anderen Tabelle die Ausführung weiterer Trigger auslösen kann. Und
beachten Sie, dass ich während der Ausführung einer Datenänderung
(insert, update, delete) kein select-Statement auf eben dieselbe Tabelle
ausgeführt werden kann.
Jeder Fehler im
Triggertext führt nicht nur zu einer fehlerhaften Objektregel, sondern
auch zu invaliden Oracle-Triggern bei allen Objektklassen, bei denen die
Objektregel angewandt wurde.
10. Ordnen Sie die Objektregel zu und aktivieren Sie sie.