概述
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触发器的全部内容,希望文章能够帮你解决Oracle基础知识(六) - 触发器的分类:DDL触发器所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复