Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Alle Trigger in der Oracle-Datenbank auflisten

Oracle Database enthält mehrere Ansichten, die Informationen zu Triggern in der Datenbank enthalten. Wir können diese Ansichten verwenden, um eine Liste von Auslösern zurückzugeben.

Die user_triggers Anzeigen

Die user_triggers view beschreibt die Trigger, die dem aktuellen Benutzer gehören.

Abfragebeispiel:

SELECT
    trigger_name,
    trigger_type,
    triggering_event,
    table_owner, 
    table_name, 
    base_object_type, 
    status, 
    trigger_body    
FROM 
    user_triggers
ORDER BY
    trigger_name ASC,
    base_object_type ASC,
    table_name ASC;

Wie bereits erwähnt, gibt dies nur die Trigger zurück, die dem aktuellen Benutzer gehören.

Um mehr zurückzugeben, verwenden Sie eine der folgenden Ansichten.

Die all_triggers Anzeigen

Die all_triggers view beschreibt die Trigger auf Tabellen, auf die der aktuelle Benutzer zugreifen kann.

Wenn der Benutzer den CREATE ANY TRIGGER hat Privileg, dann beschreibt diese Ansicht alle Trigger in der Datenbank.

SELECT
    owner,
    trigger_name,
    trigger_type,
    triggering_event,
    table_owner, 
    table_name, 
    base_object_type, 
    status, 
    trigger_body    
FROM 
    all_triggers
ORDER BY
    owner ASC,
    trigger_name ASC,
    base_object_type ASC,
    table_name ASC;

Diese Ansicht enthält einen owner Spalte, die uns sagt, wer der Besitzer ist, also habe ich das in diese Abfrage aufgenommen und die Ergebnisse auch nach dieser Spalte sortiert.

Die dba_triggers Anzeigen

Die dba_triggers view listet alle Trigger in der Datenbank auf:

SELECT
    owner,
    trigger_name,
    trigger_type,
    triggering_event,
    table_owner, 
    table_name, 
    base_object_type, 
    status, 
    trigger_body    
FROM 
    dba_triggers
ORDER BY
    owner ASC,
    trigger_name ASC,
    base_object_type ASC,
    table_name ASC;

Die Spalten dieser Ansicht sind die gleichen wie die in all_triggers ansehen.