oracle教程34 触发器(DDL触发器)

蔚落 2022-05-27 07:13 295阅读 0赞

70

70 1

栗子:

  1. --案例1:禁止SCOTT用户的DDL操作
  2. CREATE OR REPLACE TRIGGER scott_trigger
  3. BEFORE DDL
  4. ON SCHEMA
  5. BEGIN
  6. RAISE_APPLICATION_ERROR(-20005,'scott用户禁止所有的DDL操作!');
  7. END;
  8. --测试
  9. CREATE SEQUENCE test_seq;
  10. --案例2
  11. --创建一个记录数据库对象DDL操作的日志表
  12. create table object_log(
  13. logid number constraint pk_logid primary key,
  14. operatedate date not null
  15. objecttype varchar2(50) not null,
  16. objectowner varchar2(50) not null
  17. );
  18. CREATE SEQUENCE object_log_seq;
  19. --创建触发实现对数据库对象DDL操作记录的触发器
  20. CREATE OR REPLACE TRIGGER object_trigger
  21. AFTER CREATE OR DROP OR ALTER
  22. ON DATABASE
  23. BEGIN
  24. INSERT INTO object_log(logid,operatedate,objecttype,objectowner)
  25. VALUES(object_log_seq.nextval,sysdate,ORA_DICT_OBJ_TYPE,ORA_DICT_OBJ_OWNER);
  26. END;
  27. --测试
  28. conn yanln/yanln
  29. create sequence test_seq1;
  30. conn system/password
  31. select * from object_log;

发表评论

表情:
评论列表 (有 0 条评论,295人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Oracle触发器

    触发器可以看做一种“特殊”的存储过程,它定义了一些与数据库相关事件(如INSERT、UPDATE、CREATE等事件)发生时应执行的“功能代码块”,通常用于管理复杂的完整性约束