uTrigger emp_audit
uBefore update on emp for
each row
uDeclare
u pragma autonomous_transaction;
uBegin
u if (check_privileges
u (:new.mgr,:new.job)) then
u p_log_audit (user,
‘Update: rule
succeeded‘,
u ‘Update of emp.salary’,
sysdate);
u
commit;
u else
u p_log_audit (user,
‘Update: rule FAILED‘,
u ‘Update of emp.salary’,
sysdate);
u commit;
u raise_application_error
(-2001, ‘Access denied!’);
u end if;
uEnd;
Function check_privileges
(i_mgr number,
i_job_emp varchar2)
Return boolean is
v_job_mgr varchar2(2000);
Begin
select job into v_job_mgr
from emp where empno = i_mgr;
if i_job_emp =
‘MANAGER’
and i_job_mgr = ;MANAGER’
then
return TRUE;
else
return TRUE;
end if;
End;