wah...I stand corrected :) ternyata Statement trigger punya kelebihan untuk bisa melihat record2nya, make sense juga karena dalam 1 session.
Thanks pak Hamid atas koreksinya! Kalau begitu jawaban pak Sam merupakan solusi buat TS, dengan asumsi 1 database transaksi cuman memprocess 1 NO_TRANS saja. boleh sebanyak mungkin record asalkan masih dalam NO_TRANS yang sama. 2008/7/18 Awaluddin Hamid <[EMAIL PROTECTED]>: > Tetap terlihat koq.. hanya saja kelemahannya yg kebaca di trigger > statement hanya record terakhir. > Contoh sederhana dan sedikit uraiannya, saya letakkan di forum (karena > cukup panjang): > http://www.indo-oracletech.com/forum/viewtopic.php?f=6&t=214 > > > rgds, > AH > > Yoel Susanto wrote: > > > > Tidak bisa pak SAM > > Karena statement trigger anda tidak akan melihat record2 yang belum > > tercommit. > > Jadi anda punya NO_TRANS nya juga tidak berguna. > > > > Caranya yah salah satu dari 2 : > > 1. Pakai Array yang menampung tiap2 QTY record baru (sperti yang pak AH > > bilang) > > 2. Bikin 1 simple procedure untuk process update, yang dipanggil setelah > > detail transaksi di COMMIT. > > > > 2008/7/17 sam_hidayat <[EMAIL PROTECTED] <sam_hidayat%40yahoo.com> > > <mailto:sam_hidayat%40yahoo.com <sam_hidayat%2540yahoo.com>>>: > > > > > > Kalau seperti ini bisa ga ya? > > > CREATE OR REPLACE TRIGGER detil_a_aiud > > > AFTER INSERT OR UPDATE OR DELETE ON detil_a > > > DECLARE > > > v_isi detil_a.isi%type; > > > v_tot table_b.tot_qty%type; > > > > > > > > > BEGIN > > > select isi into v_isi from detil_a where > > > no_trans=detil_a_pkg.v_trans; > > > select tot_qty into v_tot from tabel_b where > > > no_trans=detil_a_pkg.v_trans; > > > > > > update table_b set tmtgol=v_isi + v_tot > > > where no_trans=detil_a_pkg.v_trans; > > > > > > END; > > > / > > > > > > CREATE OR REPLACE TRIGGER detil_a_biud > > > before INSERT or UPDATE or DELETE on detil_a > > > FOR EACH ROW > > > BEGIN > > > if deleting then > > > detil_a_pkg.v_trans :=:OLD.no_trans; > > > else > > > detil_a_pkg.v_trans :=:NEW.no_trans; > > > end if; > > > END; > > > / > > > > > > CREATE OR REPLACE package detil_a_pkg as > > > v_trans detil_a.no_trans%type; > > > > > > end; > > > > > > > -- Cheers, Yoel Susanto www.indo-oracletech.com [Non-text portions of this message have been removed]

