Wie um zu überprüfen, ob ein Trigger ungültig ist?
Frage
Ich arbeite an Datenbanken, die sich bewegenden Tabellen automatisch generiert durch einige obskure Werkzeuge. By the way, müssen wir über einige Trigger Informationen Änderungen in der Tabelle verfolgen. Und natürlich kommt es vor, dass einige Änderungen in der Tabellenstruktur einig Auslöser brachen, indem Sie eine Spalte zu entfernen oder seine Art zu ändern, zum Beispiel.
So ist die Frage: Gibt es eine Möglichkeit, die Oracle-Metadaten abfragen, um zu überprüfen ist, werden einige Trigger gebrochen, einen Bericht an das Support-Team zu schicken?
Die user_triggers geben alle Trigger und sagt, wenn sie aktiviert sind oder nicht, aber gibt nicht an, ob sie noch gültig sind.
Lösung
SELECT *
FROM ALL_OBJECTS
WHERE OBJECT_NAME = trigger_name
AND OBJECT_TYPE = 'TRIGGER'
AND STATUS <> 'VALID'
Andere Tipps
Hier finden Sie aktuelle SYS.OBJ $, speziell die Spalte STATUS.