Oracle
 sql >> Database >  >> RDS >> Oracle

Elenca tutti i trigger nel database Oracle

Oracle Database include diverse viste che contengono informazioni sui trigger nel database. Possiamo utilizzare queste viste per restituire un elenco di attivatori.

Gli user_triggers Visualizza

Gli user_triggers view descrive i trigger di proprietà dell'utente corrente.

Esempio di query:

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;

Come accennato, questo restituisce solo quei trigger che sono di proprietà dell'utente corrente.

Per restituire più di questo, utilizza una delle seguenti visualizzazioni.

Il all_triggers Visualizza

I all_triggers view descrive i trigger sulle tabelle accessibili all'utente corrente.

Se l'utente ha il CREATE ANY TRIGGER privilegio, quindi questa vista descrive tutti i trigger nel database.

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;

Questa vista include un owner colonna che ci dice chi è il proprietario, quindi l'ho incluso in questa query e ho anche ordinato i risultati in base a quella colonna.

I dba_triggers Visualizza

I dba_triggers view elenca tutti i trigger nel database:

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;

Le colonne di questa vista sono le stesse di all_triggers visualizza.