sql >> Base de Datos >  >> RDS >> Oracle

Listar todos los disparadores en la base de datos de Oracle

Oracle Database incluye varias vistas que contienen información sobre disparadores en la base de datos. Podemos usar estas vistas para devolver una lista de disparadores.

Los user_triggers Ver

Los user_triggers La vista describe los activadores que posee el usuario actual.

Ejemplo de consulta:

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;

Como se mencionó, esto devuelve solo aquellos disparadores que son propiedad del usuario actual.

Para devolver más que eso, use una de las siguientes vistas.

Los all_triggers Ver

Los all_triggers view describe los activadores en las tablas accesibles para el usuario actual.

Si el usuario tiene el CREATE ANY TRIGGER privilegio, esta vista describe todos los disparadores en la base de datos.

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;

Esta vista incluye un owner columna que nos dice quién es el propietario, así que lo incluí en esta consulta y también ordené los resultados por esa columna.

Los dba_triggers Ver

Los dba_triggers ver enumera todos los disparadores en la base de datos:

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;

Las columnas de esta vista son las mismas que las de all_triggers ver.