Skip to content

DBA_TRIGGERS

功能描述

DBA_TRIGGERS系统视图用于存储和管理当前库中所有创建的触发器信息。

字段说明

字段名类型说明
DB_IDINTEGER库ID
SCHEMA_IDINTEGER模式ID
USER_IDINTEGER拥有者ID
OBJ_IDINTEGER触发对象的ID
TRIG_IDINTEGER触发器ID
TRIG_NAMECHAR(128)触发器名
TRIG_TIMEINTEGER触发时机
TRIG_EVENTINTEGER触发事件
TRIG_TYPEINTEGER触发器类型
TRIG_CONDCHAR(-1)触发条件表达式
LANGUAGECHAR(8)过程语言类别
DEFINECLOB过程定义的文本
CREATE_TIMEDATETIME创建时间
ENABLEBOOLEAN是否使能
VALIDBOOLEAN是否有效
IS_SYSBOOLEAN是否系统内建
COMMENTSCHAR(-1)注释信息
RESERVED1CHAR(-1)保留字段
RESERVED2CHAR(128)保留字段

TRIG_EVENT

对象名编号
INSERT1
UPDATE2
INSERT OR UPDATE3
DELETE4
INSERT OR DELETE5
UPDATE OR DELETE6
INSERT OR UPDATE OR DELETE7
LOGON8
LOGOFF16

TRIG_TYPE

对象名编号
FOR EACH ROW1
FOR STATEMENT2

TRIG_TIME

对象名编号
BEFORE1
INSTEAD2
AFTER4

示例

  • 查询触发器的定义文本、触发时间、触发类型等相关信息

    sql
    SQL> CREATE TABLE tritb_info(deptno INT);
    
    SQL> CREATE OR REPLACE TRIGGER tri_info BEFORE INSERT ON tritb_info
    FOR EACH ROW
    WHEN(deptno>=50)
    BEGIN
    RAISE_APPLICATION_ERROR(-20000,'部门号超出规定');
    END;
    /
    
    SQL> SELECT * FROM dba_triggers WHERE trig_name='TRI_INFO';
    
    DB_ID | SCHEMA_ID | USER_ID | OBJ_ID | TRIG_ID | TRIG_NAME | TRIG_TIME | TRIG_EVENT | TRIG_TYPE | TRIG_COND | LANGUAGE | DEFINE | CREATE_TIME | ENABLE | VALID | IS_SYS | COMMENTS | RESERVED1 | RESERVED2 | 
    ------------------------------------------------------------------------------
    1 | 1 | 1 | 1048601 | 1048602 | TRI_INFO| 1 | 1 | 1 | ("DEPTNO") >= (50)| PLSQL| CREATE OR REPLACE TRIGGER tri_info BEFORE INSERT ON tritb_info
    FOR EACH ROW
    WHEN(deptno>=50)
    BEGIN
    RAISE_APPLICATION_ERROR(-20000,'部门号超出规定');
    END;| 2022-05-10 17:37:18.263 AD | T | T | F | <NULL>| <NULL>| <NULL>|
  • 查询触发器拥有者、所属模式和所属库

相关系统表

  • sys_databases
  • sys_schemas
  • sys_users
  • sys_depends