SQL> create table critical_tab_audit (
 2 SDDELN NUMBER,
 3 AFTER_SDDELN NUMBER,
 4 SDDOCO NUMBER,
 5 AFTER_SDDOCO NUMBER,
 6 SDLNID NUMBER,
 7 AFTER_SDLNID NUMBER,
 8 user_name VARCHAR2(30),
 9 v_addr VARCHAR2(11),
 10 TERMINAL varchar2(255),
 11 HOST varchar2(255),
 12 action VARCHAR2(30),
 13 upd_date DATE);
Table created.

SQL> CREATE OR REPLACE TRIGGER audit_critical_tab
 2 AFTER UPDATE OF SDDELN, SDDOCO, SDLNID ON user1.critical_tab
 3 FOR EACH ROW when (new.SDDELN=0)
 4 BEGIN
 5 INSERT INTO critical_tab_audit VALUES (:old.SDDELN,:new.SDDELN,:old.SDDOCO,:new.SDDOCO,:old.SDLNID,:new.SDLNID,User,o
SERENV','TERMINAL'),sys_context('USERENV','HOST'),'UPDATE',Sysdate);
 6 END;
 7 /
Trigger created.
SQL> CREATE TABLE AUDIT_DDL (
 2 d date,
 3 OSUSER varchar2(255),
 4 CURRENT_USER varchar2(255),
 5 HOST varchar2(255),
 6 TERMINAL varchar2(255),
 7 owner varchar2(30),
 8 type varchar2(30),
 9 name varchar2(30),
 10 sysevent varchar2(30));
Table created.
SQL> create or replace trigger AUDIT_DDL
 2 AFTER UPDATE OF SDDELN, SDDOCO, SDLNID ON user1.critical_tab
 3 FOR EACH ROW when (new.SDDELN=0)
 4 begin
 5 insert into audit_ddl(d, osuser,current_user,host,terminal,owner,type,name,sysevent)
 6 values(
 7 sysdate,
 8 sys_context('USERENV','OS_USER') ,
 9 sys_context('USERENV','CURRENT_USER') ,
 10 sys_context('USERENV','HOST') ,
 11 sys_context('USERENV','TERMINAL') ,
 12 ora_dict_obj_owner,
 13 ora_dict_obj_type,
 14 ora_dict_obj_name,
 15 ora_sysevent
 16 );
 17 end;
 18 /
Trigger created.
SQL> select * from critical_tab_audit;
SDDELN AFTER_SDDELN SDDOCO AFTER_SDDOCO SDLNID AFTER_SDLNID USER_NAME V_ADDR
------ ------------ ------ ------------ ------ ------------ -------------------- -----------
TERMINAL
-------------------------------------------------------------------------------------------------------------------
--------------------------------------------------
HOST
-------------------------------------------------------------------------------------------------------------------
--------------------------------------------------
ACTION UPD_DATE
---------- ---------
 ### 0 ### ### ### ### CONSULT
unknown
ntb01prg
UPDATE 25-MAY-14
SQL> select * from audit_ddl;
D
---------
OSUSER
-------------------------------------------------------------------------------------------------------------------
--------------------------------------------------
CURRENT_USER
-------------------------------------------------------------------------------------------------------------------
--------------------------------------------------
HOST
-------------------------------------------------------------------------------------------------------------------
--------------------------------------------------
TERMINAL
-------------------------------------------------------------------------------------------------------------------
--------------------------------------------------
OWNER TYPE NAME SYSEVENT
------------------------------ ------------------------------ ------------------------------ ----------------------
25-MAY-14
tscpkc2
SYSTEM
PC01KAN2
unknown


Komentáře