Hi Laurens,

Di dalam trigger cara baca data dari table lain tidak membutuhkan :NEW atau
:OLD
Karena anda coba membuat validasinya secara referensi, maka di dalam trigger
harus disediakan if terhadap column yang dimaksud

CREATE OR REPLACE TRIGGER TG_Customer
AFTER UPDATE ON Customer
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
DECLARE
  l_field_nm   Varchar2(10) ;

  Cursor Rec_Data IS
    SELECT column_name
      FROM table_A
     WHERE table_name = 'Customer' ;

BEGIN

 FOR Rec IN Rec_Data LOOP
   l_field_nm := Rec.column_name;

   IF l_field_nm = 'COLUMN_A' THEN
     IF :NEW.COLUMN_A <> :OLD.COLUMN_A THEN
        proc_ins_data;
     END IF;
   END IF
  END LOOP ;
 END ;

Mungkin akan lebih baik anda mendefinisikan triggernya dengan memberikan
batasan column apa aja yang harus diperiksa dan data seperti apa yang
menyebabkan trigger dieksekusi. Contohnya
CREATE OR REPLACE TRIGGER TG_Customer
AFTER UPDATE OF COLUMN_A, COLUMN_B
ON Customer
REFERENCING NEW AS New OLD AS Old
FOR EACH ROW
WHEN ((NEW.COLUMN_A <> OLD.COLUMN_A) OR (NEW.COLUMN_B <> OLD.COLUMN_B))
DECLARE
  l_field_nm   Varchar2(10) ;

  Cursor Rec_Data IS
    SELECT column_name
      FROM table_A
     WHERE table_name = 'Customer' ;

BEGIN
   proc_ins_data;
END ;

Cheers,
Wadi

On Wed, Jan 13, 2010 at 6:23 PM, <[email protected]> wrote:

> Dear all,
>
> Mohon bantuan sharingnya,
>
> Bagaimana agar  :New.l_field_nm   dan   :Old.l_field_nm
> dapat terbaca 'nilai'-nya.
>
> Contoh Trigger:
> CREATE OR REPLACE TRIGGER TG_Customer
>  AFTER UPDATE ON Customer
>  REFERENCING NEW AS New OLD AS Old
>  FOR EACH ROW
> DECLARE
>  l_field_nm   Varchar2(10) ;
>
>  Cursor Rec_Data IS
>    SELECT column_name
>      FROM table_A
>     WHERE table_name = 'Customer' ;
>
> BEGIN
>
>  FOR Rec IN Rec_Data LOOP
>      l_field_nm := Rec.column_name ;
>
>      IF :New.l_field_nm <> :Old.l_field_nm Then
>         ->  proc ins_data
>      END IF
>
>  END LOOP ;
>
> END ;
>
>
> Thanks vm
> Laurens
>
> [Non-text portions of this message have been removed]
>
>
>
> ------------------------------------
>
> --
> -----------I.N.D.O - O.R.A.C.L.E---------------
> Keluar: [email protected]
> Website: http://indooracle.wordpress.com
> http://www.facebook.com/group.php?gid=51973053515
> -----------------------------------------------
>
> Bergabung dengan Indonesia Thin Client User Groups,
> Terminal Server, Citrix, New Moon Caneveral, di:
> http://indo-thin.blogspot.comYahoo! Groups Links
>
>
>
>


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

Kirim email ke