Kalau tujuan auditnya setiap ada data baru ataupun perubahan, jangan 
pakai :old tapi pakai :new untuk insert dan update, sementara untuk 
delete gunakan :old.

Berikut contoh scriptnya
==================
CREATE TABLE COBA
(
EMPNO     NUMBER(4),
NAMA     VARCHAR2(20),
JABATAN       VARCHAR2(10),
GAJI       NUMBER
);

======================
CREATE TABLE COBA_audit
(
Tanggal_edit date,
EMPNO     NUMBER(4),
NAMA     VARCHAR2(20),
JABATAN    VARCHAR2(10),
GAJI       NUMBER,
OPERASI    VARCHAR2(6)
);

=======================================
BEFORE INSERT OR UPDATE OR DELETE ON COBA FOR EACH ROW
DECLARE
BEGIN

   if inserting then
      insert into COBA_audit values (
      sysdate,
      :new.EMPNO,
      :new.NAMA,
      :new.JABATAN,
      :new.GAJI,
      'INSERT'
      );

   elsif updating then
      insert into COBA_audit values (
      sysdate,
      :new.EMPNO,
      :new.NAMA,
      :new.JABATAN,
      :new.GAJI,
      'UPDATE'
      );
     
   elsif deleting then
      insert into COBA_audit values (
      sysdate,
      :old.EMPNO,
      :old.NAMA,
      :old.JABATAN,
      :old.GAJI,
      'DELETE'
      );
     
   end if;
END;


Di bawah ini DML yang saya coba
==============================================
insert into COBA values (1, 'Andes', 'DBA', 400000);
commit;
==============================================
update COBA set gaji=1000000 where empno=1;
commit;
==============================================
delete COBA where empno = 1;
commit;

Selanjutnya hasil query dari
==============================================
select tanggal_edit, empno, nama, jabatan, gaji, operasi from coba_audit;
TANGGAL_EDIT            EMPNO    NAMA    JABATAN    GAJI    OPERASI
8/12/2008 5:14:13 PM    1        Andes    DBA     400000    INSERT
8/12/2008 5:14:13 PM    1        Andes    DBA    1000000    UPDATE
8/12/2008 5:14:13 PM    1        Andes    DBA    1000000    DELETE


Cheers,
Wadi Achmed

Andes Febrian wrote:
> Dear gurus,
>
> untuk audit proses insert knp ya data yg di tampilkan pada table audit hanya
> tanggal. seperti contoh di bawah ini :
> ==================
> CREATE TABLE COBA
> (
> EMPNO     NUMBER(4),
> NAMA     VARCHAR2(20),
> JABATAN       VARCHAR2(10),
> GAJI       NUMBER
> );
>
> ======================
> CREATE TABLE COBA_audit
> (
> Tanggal_edit date,
> EMPNO     NUMBER(4),
> NAMA     VARCHAR2(20),
> JABATAN    VARCHAR2(10),
> GAJI       NUMBER
> );
>
> =======================================
> CREATE OR REPLACE TRIGGER trg_COBA_audit
> BEFORE INSERT OR DELETE OR UPDATE ON COBA
> FOR EACH ROW
> DECLARE
> BEGIN
> insert into COBA_audit values (
> sysdate,
> :old.EMPNO,
> :old.NAMA,
> :old.JABATAN,
> :old.GAJI
> );
> END;
> /
>
> ===================================
> insert into COBA2 values (1, 'Andes', 'DBA', 400000)
> commit;
>
> ***setelah insert, saya select * from coba_audit hasilnya adalah :
>   tanggal_edit empno ename job sal  08/12/2008 16:07:33
>
>
>
>
> ===================================
> update COBA2 set sal=1000000 where empno=1
> commit;
>
> ****kemudian bila saya update barulah tampil, sebagai berikut :
>   tanggal_edit empno ename job sal  08/12/2008 16:16:44 3 Andes DBA
> 1.000.000,00  08/12/2008 16:14:30
>
>
>
>
> Mohon pencerahannya, terima kasih.
>   



[Non-text portions of this message have been removed]

Kirim email ke