Databases Reference
In-Depth Information
SELECT * FROM Art;
führt dies zu folgender Ausgabe.
1 rows inserted
Error report:
SQL Error: ORA-20999: passt nirgendwo rein
ORA-06512: in "KLEUKER.NEUEART", Zeile 19
ORA-04088: Fehler bei der Ausführung von Trigger
'KLEUKER.NEUEART'
GATTUNG MINFLAECHE
------- ----------------------
Baer 8
Hase 2
Schaf 5
Reh 4
Gnu 12
Bisher wurden Trigger direkt für existierende Tabellen defi-
niert. In einer leicht abgewandelten Form ist es aber auch mög-
lich, Trigger für Views zu definieren und sie so für Nutzer als
vollständig nutzbare Tabellen erscheinen zu lassen. Dies sind
sogenannte INSTEAD OF-Trigger, da sie anstatt dem vermeint-
lich direkten Zugriff auf den View tätig werden. Die generelle
Syntax sieht wie folgt aus, man sieht, dass es keine WHEN-
Bedingung geben kann.
Trigger für
Views
CREATE [ OR REPLACE ] TRIGGER <Triggername>
INSTEAD OF
{ INSERT | DELETE | UPDATE } [ OF {Spaltenliste}]
ON <Viewname>
[ FOR EACH ROW ]
<PL/SQL-Block> ;
Für ein Beispiel wird zunächst ein View konstruiert, der einen
vollständigen Überblick über den Zoo liefert.
CREATE OR REPLACE VIEW Gesamt AS
SELECT Tier.TName, Tier.Gattung,
Art.MinFlaeche, Gehege.GNr, Gehege.GName
FROM Gehege,Tier,Art
WHERE Gehege.Gnr=Tier.GNr
AND Tier.Gattung=Art.Gattung;
Dieser View kann nicht verändert werden, da er sich aus meh-
reren Tabellen zusammensetzt. Mit einem INSTEAD OF-
Trigger kann man es aber schaffen, dass INSERT-Befehle für
diesen VIEW erlaubt sind. Der Trigger analysiert dabei die neu
eingetragenen Werte und insofern Aktualisierungen der Basis-
275
Search WWH ::




Custom Search