«Si utilizas SQL Developer simplemente puedes ir a la pestaña "Código"»
Para consultar información de los disparadores (triggers), utilizamos vistas del diccionario de datos como:
USER_TRIGGERS trigger pertenecientes al esquema del usuario actual.
ALL_TRIGGERS triggers sobre tablas accesibles por el usuario actual. (Si el usuario posee el privilegio CREATE ANY TRIGGER podrá ver todos los triggers de la base de datos.)
DBA_TRIGGERS todos los disparadores de la base de datos.
Tienen las mismas columnas, excepto USER_TRIGGERS la columna «owner».
Al describir por ejemplo ALL_TRIGGERS; columnas que nos daran información como: propietario, nombre del disparador, tipo, evento, propietario de la tabla, nombre de la tabla/vista, tipo de objeto base (tabla/vista), estado (enabled, disabled), código, etc.
Solo tenemos que realizar la consulta de nuestro interes, por ejemplo:
Si estamos conectados con el usuario HR, y queremos ver los triggers que tienen las tablas pertenecientes al usuario HR (nuestro usuario); la siguiente select muestra el nombre del trigger y el propietario de éste (que sin permisos no se podría borrar dicho trigger al no pertenecernos, aunque este sobre nuestra tabla).
select owner,trigger_name,table_name
from all_triggers
where table_owner='HR';
OWNER
-----
|
TRIGGER_NAME
------------------
|
TABLE_NAME
---------------
|
HR
|
SECURE_EMPLOYEES
|
EMPLOYEES
|
HR
|
UPDATE_JOB_HISTORY
|
EMPLOYEES
|
JP
|
TRIJP
|
EMPLOYEES
|
HR
|
TRIHR
|
EMPLOYEES
|
Si queremos ver el código del trigger, tenemos el cuerpo -solo- (trigger_body) en las vistas mencionadas; pero mejor aún si lo consultamos en ALL_SOURCE (similares: USER_SOURCE, DBA_SOURCE), donde está todo el código, no solo el cuerpo (además código de procedimientos, funciones, paquetes, disparadores).
select text
from all_source
where name='SECURE_EMPLOYEES'
and owner='HR';TEXT
------------------------------------------------------
TRIGGER secure_employees
BEFORE INSERT OR UPDATE OR DELETE ON employees
BEGIN
secure_dml;
END secure_employees;
Otros enlaces:
Web Oracle. Vistas: user_triggers, all_triggers, dba_triggers y otras más.
No hay comentarios:
Publicar un comentario