24 of 38
Usage #1: Example
uCreate or replace view v_emp
uAs
uSelect empno,
    ename, audit$pkg.f_record(empno,
   ‘sal’, sal) sal
uFrom emp
package body audit$pkg is
 function f_record(i_id number, 
    i_tx varchar2,
 i_value_nr number)
 return number is
  pragma autonomous_transaction;
 begin
  insert into audit_emp
  values (audit_seq.nextval,
  ‘VIEW’,‘Request of ‘||i_tx|| ’=‘||i_value_nr||
’ for emp by pk=‘ ||i_id,
    user,sysdate);
  commit;
  return v_value_nr;
 end;
End;
Select empno,  
       ename, sal
From v_emp
Select …
From emp
Insert into
audit_emp