码迷,mamicode.com
首页 > 其他好文 > 详细

触发器应用 trigger

时间:2015-07-14 15:31:37      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:

首先有一张表:

create table T_SALARY
(
  name   VARCHAR2(20),
  age    NUMBER(2),
  salary NUMBER(5)
);

insert into t_salary (NAME, AGE, SALARY)
values (‘wyl‘, 23, 63000);

insert into t_salary (NAME, AGE, SALARY)
values (‘werxiao‘, 43, 6012);

insert into t_salary (NAME, AGE, SALARY)
values (‘lisi‘, 54, 7000);

insert into t_salary (NAME, AGE, SALARY)
values (‘zhangsan‘, 42, 4521);

触发器应用场景1:复杂的安全性检查,如下

  

CREATE OR REPLACE TRIGGER t_security_t_salary
BEFORE UPDATE
ON t_salary
/*
   触发器应用场景1:复杂的安全检查
   禁止在非工作时间操作表
   周末或者不在9点到18点之间,为非工作时间
*/
BEGIN
  IF(to_char(SYSDATE,‘day‘)IN(‘星期六‘,‘星期日‘)) OR
  to_number(to_char(sysdate,‘hh24‘)) NOT BETWEEN 9 AND 18 THEN
  --to_number(to_char(sysdate,‘hh24‘)) BETWEEN 9 AND 18 THEN
  --禁止insert 新员工
  raise_application_error(‘-20002‘,‘非工作时间不允许操作这张表‘);
  END IF;
END;

  其中 raise_application_error()的第一个参数为 -20999到-20000之间。效果图如下:

技术分享

触发器应用 trigger

标签:

原文地址:http://www.cnblogs.com/Sunnor/p/4645326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!