- Row Trigger 에서만 가능
- 트리거 블록 내에서 사용하며 사용시 콜론(:)을 앞에 붙여야 함
* INSERT: OLD -> NULL, NEW -> inserted value
* UPDATE: OLD -> value before update, NEW -> value after update
* DELETE: OLD -> value before delete, NEW -> NULL
- REFERENCING
create or replace trigger emp_trg_2
before insert or update of sal on t_emp
referencing new as n_val
-- old as o_val
for each row
-- referencing new as n_val
begin
if not (:n_val.job in ('PRESIDENT', 'ANALYST'))
and :n_val.sal >= 3000 then
raise_application_error(-20002, '급여를 3000 달러 이상 받을 수 없는 직군입니다.');
end if;
end;
/
'Oracle > PL/SQL' 카테고리의 다른 글
15일차 # 10-18: Trgger Execution Model (0) | 2012.04.24 |
---|---|
15일차 # 10-17: Restricting a Row Trigger (0) | 2012.04.24 |
15일차 # 10-14: DML Row Trigger (0) | 2012.04.24 |
15일차 # 10-13: Conditional Predicates (0) | 2012.04.24 |
15일차 # 10-11: DML Statement Trigger (0) | 2012.04.24 |