ALL_TRIGGERS
功能描述
all_triggers系统视图用于存储和管理系创建的触发器信息。
字段说明
字段名 | 类型 | 说明 |
---|---|---|
DB_ID | OID_TYPE | 库ID |
SCHEMA_ID | OID_TYPE | 模式ID |
USER_ID | OID_TYPE | 拥有者ID |
OBJ_ID | OID_TYPE | 触发对象的ID |
TRIG_ID | OID_TYPE | 触发器ID |
TRIG_NAME | VARCHAR | 触发器名 |
TRIG_TIME | INTEGER | 触发时机 |
TRIG_EVENT | INTEGER | 触发事件 |
TRIG_TYPE | INTEGER | 触发器类型 |
TRIG_COND | VARCHAR | 触发条件表达式 |
LANGUAGE | CHAR | 过程语言类别 |
DEFINE | CLOB | 过程定义的文本 |
CREATE_TIME | DATETIME | 创建时间 |
ENABLE | BOOLEAN | 是否使能 |
VALID | BOOLEAN | 是否有效 |
IS_SYS | BOOLEAN | 是否系统内建 |
COMMENTS | VARCHAR | 注释信息 |
RESERVED1 | VARCHAR | 保留字段 |
RESERVED2 | VARCHAR | 保留字段 |
TRIG_EVENT
对象名 | 编号 |
---|---|
INSERT | 1 |
UPDATE | 2 |
INSERT OR UPDATE | 3 |
DELETE | 4 |
INSERT OR DELETE | 5 |
UPDATE OR DELETE | 6 |
INSERT OR UPDATE OR DELETE | 7 |
LOGON | 8 |
LOGOFF | 16 |
TRIG_TYPE
对象名 | 编号 |
---|---|
FOR EACH ROW | 1 |
FOR STATEMENT | 2 |
TRIG_TIME
对象名 | 编号 |
---|---|
BEFORE | 1 |
INSTEAD | 2 |
AFTER | 4 |
示例
查询触发器的定义文本、触发时间、触发类型等相关信息
sqlSQL> 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 all_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