Halo Pak Ipang,

Sedikit koreksi, dalam trigger bisa memanggil Stored Procedure, stored
Function, built-in Function, atau Package.
Tetapi perlu dihindari pemanggilan dari Trigger terhadap SP, Function, atau
Package yang melakukan query ke table/materialized view yang sama. Karena
akan menyebabkan Mutating.

Cheers,
Wadi Achmed

On Thu, Jan 14, 2010 at 7:14 AM, ipank Aji <[email protected]>wrote:

> maaf.. sebelumnya saya ingin bertanya. Apakah didalam body trigger tersebut
> memanggil prosedur proc_ins_data? Karena setahu saya trigger tidak dapat
> memanggil procedure ataupun function. Terima Kasih.
>
> --- On Thu, 14/1/10, Wadi Achmed <[email protected]> wrote:
>
> From: Wadi Achmed <[email protected]>
> Subject: Re: [indo-oracle] DML Trigger (After Update on table)
> To: [email protected]
> Date: Thursday, 14 January, 2010, 5:42
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>      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, <laurens_kaseger@ manulife. com> 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: indo-oracle- unsubscribe@ yahoogroups. com
>
> > Website: http://indooracle. wordpress. com
>
> > http://www.facebook .com/group. php?gid=51973053 515
>
> > ------------ --------- --------- --------- --------
>
> >
>
> > 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]
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> [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