标签:
首先有一张表:
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之间。效果图如下:
标签:
原文地址:http://www.cnblogs.com/Sunnor/p/4645326.html