1. 程式人生 > >oracle行級insert觸發器的寫法及部分知識點

oracle行級insert觸發器的寫法及部分知識點

工作中第一次用到觸發器,特地總結留下記錄,以做參考

create or replace trigger count2013
before insert            --可以使用beforeafter確定觸發時機,觸發事件作可以是insertdelete,等其他dml語句和ddl語句等
on rec_employee_salary   --確定觸發的表
for each row             --行級觸發,省略則是語句級觸發
when  (new.term =201706 and new.pksi = 2013)    --觸發該觸發器的條件
declare                  --可以利用declare
宣告所需變數 v_pkorg varchar2(20);
v_orgScore number; begin if inserting then --判斷如果是插入資料操作則進入if語句 --獲取該支行人員的所屬機構,以及該機構的網點考核得分 select emp.pkorg into v_pkorg from (select * from rec_employee_salary where pksi = 201706 and pksi = 2013) empsal inner join dic_employee emp on
empsal.pkemp = emp.pkemp;
select salarystandard into v_orgScore from dic_salary_standard where pksi = 5011 and pkemp = v_pkorg; --判斷該人員屬於哪個機構 if v_pkorg in(14050702800,14050701300,14050700600,14050702400) then :new.salary :=:new.salary+500*v_orgScore*0.01; elsif v_pkorg in(14050701000,14050700700,14050701400,14050701900,14050701600,14050702700) then :new.salary :=:new.salary+700*v_orgScore*0.01; end
if;
end if; end;