触发器应用场景一: 根据业务逻辑限制某些操作__触发器应用场景二: 校验数据
/*
觸發器應用場景一: 根據業務邏輯限制某些操作
限制非工作時間向數據庫插入數據
非工作時間: 星期六,星期日 <9:00? >18:00
select to_char(sysdate,'day') from dual;
select to_number(to_char(sysdate,'hh24')) from dual
*/
create or replace trigger securityEmp
before insert on emp
declare
?
begin
? if to_char(sysdate,'day') in ('星期六','星期日')
? or to_number(to_char(sysdate,'hh24')) not between 9 and 18 then
??? raise_application_error(-20001,'不能在非工作時間插入數據');
? end if;
end;
/
?
/*
觸發器應用場景二: 校驗數據
漲工資后的值不能小于漲之前的值
update emp set sal = sal -100 where empno=1234;
觸發器應用場景三: 數據的備份和同步
*/
create or replace trigger checkRaiseSalary
before update on emp
for each row
declare
begin
? if :new.sal < :old.sal then
??? raise_application_error(-20002,'漲工資后的值不能比漲之前的少!漲前:' || :old.sal || '? 漲后:' ||:new.sal);
? end if;
end;
/
?
總結
以上是生活随笔為你收集整理的触发器应用场景一: 根据业务逻辑限制某些操作__触发器应用场景二: 校验数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在线求急
- 下一篇: 为指定的职工在原工资的基础上长10%的工