Dear P' Wadi dan P' Ipang,

Berati harus di buat specifik-ya utk SP, Func, dtt. 
wah saya baru ngerti kalo bisa Mutating datanya. Thx vm.

Btw. 
Ttg pertanyaan saya sebelumnya.
Jika kita lihat pada tabel USER_TAB_COLS.
Nah... pada table tersebut kan terdapat Table_name, Column_Name, 
dst..dst....

Jadi saat salah satu Column pada Table Customer ter-Update,
Trigger Update pada table Customer akan segera jalan dan mencari sendiri 
Data pada Column yang berubah.
Sehingga akan terbentuk :Old.{column_name} dan :New.{column_name}   (plz 
see my "Contoh Trigger" below)

Bagaimana ya... penulisannya  :Old.{column_name} dan :New.{column_name} 
sehingga oracle bisa baca statement itu ?

Thanks in advance.
Laurens




From:
Wadi Achmed <[email protected]>
To:
[email protected]
Date:
01/15/2010 04:17 PM
Subject:
Re: [indo-oracle] DML Trigger (After Update on table)
Sent by:
[email protected]



 
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]






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

Kirim email ke