首页 > 其他 > 详细

触发器应用 trigger

时间:2015-07-14 15:29:44      阅读:233      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!