Oracle觸發器中when語句的用法


案例:scott.emp表的銷售員工資只能增加,不能減少


代碼:


CREATE OR REPLACE TRIGGER tr_emp_upd
BEFORE
UPDATE OF sal
ON emp
FOR EACH ROW

-- 當更新銷售員時才觸發
WHEN
(OLD.job='SALESMAN')
DECLARE
BEGIN
  IF(:NEW.sal<:OLD.sal)
THEN
    raise_application_error(-20013,'銷售員工資不能降低!');
  END
IF;
END;

 



運行情況:
SQL> update emp set
sal=sal-1000 where job='MANAGER';


3 rows updated


SQL> update emp set sal=sal-1000 where job='SALESMAN';


ORA-20013: 銷售員工資不能降低!
ORA-06512:
在"SCOTT.TR_EMP_UPD", line 4
ORA-04088: 觸發器 'SCOTT.TR_EMP_UPD' 執行過程中出錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM