Connect with Facebook

Tuesday, February 17, 2009

DML dengan Trigger

Saya ingin menginsert rekor dengan memanfaatkan efek saat insert ke suatu tabel. Untuk menjalankan fungsi ini, saya meng-create trigger.

Lihat skrip d bawah ini:

   1: Create Or Replace Trigger trg_insert_akt_rekap_temp
   2:   After Insert
   3:   On akt_rekap
   4:   For Each Row
   5:   -- -------------------------------------------------  
   6:   -- Created by Bontor TP.
   7:   -- Version 2009.02.17
   8:   -- -------------------------------------------------
   9: Declare
  10:   v_indikator Varchar2(3);
  11: Begin
  12:   Select Substr(m.no_sppa, 1, 3)
  13:   Into   v_indikator
  14:   From   akt_master m
  15:   Where  m.no_reg = :new.no_reg;
  16:  
  17:   -- Inserting the same record to AKT_MASTER_TEMP
  18:   If v_indikator In ('C02', 'C03')
  19:   Then
  20:     Insert Into AKT_REKAP_TEMP(KD_LOKASI,
  21:                                THN_ANG,
  22:                                KD_PEMILIK,
  23:                                KD_BRG,
  24:                                TGL_PERLH,
  25:                                PERIODE,
  26:                                NO_ASET,
  27:                                TGL_UPDATE,
  28:                                KUANTITAS,
  29:                                DSR_HRG,
  30:                                TERCATAT,
  31:                                RPH_ASET,
  32:                                KONDISI,
  33:                                MERK_TYPE,
  34:                                ASAL_PERLH,
  35:                                NO_BUKTI,
  36:                                KD_DATA,
  37:                                JNS_TRN,
  38:                                KD_SAT,
  39:                                FLAG_SAP,
  40:                                FLAG_0,
  41:                                FLAG_1,
  42:                                FLAG_2,
  43:                                FLAG_3,
  44:                                FLAG_4,
  45:                                FLAG_5,
  46:                                FLAG_6,
  47:                                FLAG_7,
  48:                                FLAG_DATA,
  49:                                ID,
  50:                                NO_REG,
  51:                                CREATED_DATE,
  52:                                CREATED_BY)
  53:     Values (:new.KD_LOKASI,
  54:             :new.THN_ANG,
  55:             :new.KD_PEMILIK,
  56:             :new.KD_BRG,
  57:             :new.TGL_PERLH,
  58:             :new.PERIODE,
  59:             :new.NO_ASET,
  60:             :new.TGL_UPDATE,
  61:             :new.KUANTITAS,
  62:             :new.DSR_HRG,
  63:             :new.TERCATAT,
  64:             :new.RPH_ASET,
  65:             :new.KONDISI,
  66:             :new.MERK_TYPE,
  67:             :new.ASAL_PERLH,
  68:             :new.NO_BUKTI,
  69:             :new.KD_DATA,
  70:             :new.JNS_TRN,
  71:             :new.KD_SAT,
  72:             :new.FLAG_SAP,
  73:             :new.FLAG_0,
  74:             :new.FLAG_1,
  75:             :new.FLAG_2,
  76:             :new.FLAG_3,
  77:             :new.FLAG_4,
  78:             :new.FLAG_5,
  79:             :new.FLAG_6,
  80:             :new.FLAG_7,
  81:             :new.FLAG_DATA,
  82:             :new.ID,
  83:             :new.NO_REG,
  84:             Sysdate,
  85:             User);
  86:   End If;
  87: End trg_insert_akt_rekap_temp;

Dari skrip diatas kita lihat trigger akan terpicu untuk menginsert rekor ke table akt_rekap_temp, sesudah terjadi peng-insert-an ke table akt_rekap.


Baris 2, mode yang digunakan adalah  After Insert pada   table akt_rekap, setelah itu bila kondisi tertentu terpenuhi, trigger akan menginsert rekor dengan nilai kolom-kolom yang baru ke tabel lain akt_rekap_temp, pada bagian skrip baris 20 s/d baris 85.

0 comments:

Post a Comment