Oracle基础知识(六) - 触发器的分类:DDL触发器

1. 什么是DDL触发器

当执行DDL语句时会被触发。

2. 分类

按照作用范围,分为schema triggers,database triggers。schema triggers作用在一个用户上,database triggers作用在整个数据库所有用户上。

3. DDL事件

DDL事件                                                                                     触发时机

ALTER                                                        对数据库中的任何一个对象使用SQL的ALTER命令时触发

ANALYZE                                                    对数据库中的任何一个对象使用SQL的ANALYZE命令时触发

ASSOCIATE STATISTICS                            统计数据关联到数据库对象时触发

AUDIT                                                         通过SQL的AUDIT命令打开审计时触发

COMMENT                                                  对数据库对象做注释时触发

CREATE                                                     通过SQL的CREATE命令创建数据库对象时触发

DDL                                                            列表中所用的事件都会触发

DISASSOCIATE STATISTICS                      去掉统计数据和数据库对象的关联时触发

DROP                                                         通过SQL的DROP命令删除数据库对象时触发

GRANT                                                       通过SQL的GRANT命令赋权时触发

NOAUDIT                                                    通过SQL的NOAUDIT关闭审计时触发

RENAME                                                     通过SQL的RENAME命令对对象重命名时触发

REVOKE                                                     通过SQL的REVOKE语句撤销授权时触发

TRUNCATE                                                 通过SQL的TRUNCATE语句截断表时触发


4. DDL触发器事件以及属性函数

函数名 返回值
ORA_CLIENT_IP_ADDRESS 客户端IP地址
ORA_DATABASE_NAME 数据库名称
ORA_DES_ENCRYPTED_PASSWORD 当前用户的DES算法加密后的密码
ORA_DICT_OBJ_NAME 触发DDL的数据库对象名称
ORA_DICT_OBJ_NAME_LIST 受影响的对象数量和名称列表
ORA_DICT_OBJ_OWNER 触发DDL的数据库对象属主
ORA_DICT_OBJ_OWNER_LIST 受影响的对象数量和名称列表
ORA_DICT_OBJ_TYPE 触发DDL的数据库对象类型
ORA_GRANTEE 被授权人数量
ORA_INSTANCE_NUM 数据库实例数量
ORA_IS_ALTER_COLUMN 如果操作的参数column_name指定的列,返回true,否则false
ORA_IS_CREATING_NESTED_TABLE 如果正在创建一个嵌套表则返回true,否则false
ORA_IS_DROP_COLUMN 如果删除的参数column_name指定的列,返回true,否则false
ORA_LOGIN_USER 触发器所在的用户名
ORA_PARTITION_POS SQL命令中可以正确添加分区子句位置
ORA_PRIVILEGE_LIST 授予或者回收的权限的数量。
ORA_REVOKEE 被回收者的数量
ORA_SQL_TXT 触发了触发器的SQL语句的行数。
ORA_SYSEVENT 导致DDL触发器被触发的时间
ORA_WITH_GRANT_OPTION 如果授权带有grant选项,返回true。否则false


你可能感兴趣的:(oracle,触发器,DDL)