Anda di halaman 1dari 4

MODUL VII TRIGGER A. Maksud Menjelaskan penggunaan trigger dalam database Oracle. B.

Tujuan Mahasiswa mengerti cara pembuatan trigger. Mahasiswa bisa membuat trigger di database oracle. C. Dasar Teori Trigger adalah sebuah obyek dalam database yang berupa prosedur dalam bentuk kode-kode sql yang merespon setiap kali terdapat proses modifikasi dalam table. Proses modifikasi itu adalah berupa Data Manipulation anguage!DM " yaitu insert# update dab delete. $gar user dapat membuat object trigger maka harus diberi pri%ileges trigger. &aranya login sebagai user sys dan berikan perintah grant create procedure to user' Trigger biasanya digunakan untuk menampilkan komentar apabila terjadi suatu aksi pada table. $ksi tersebut adalah statement Dinamyc Modeling anguage !DM "# dan dilaksanana pada kejadian tertentu.(elain kejadian secara umum juga kejadian yang menggunakan kondisi. )elebihan trigger di oracle kita juga bisa membuat kode dan pesan erroe sendiri yang tidak ada dalam oracle. Dalam memberi kode error harus di atas *++++# karena itu kode yang dibolehkan# sebab kode di *++++ sudah dipakai oleh oracle. Trigger akan memicu perubahan di table lain jika ada aksi tertentu pada suatu table ,ntuk menampilkan pesan apabila transaksi terjadi menggunakan perintah dbms_ouput.put_line('...kalimat pesan...'); sedangkan untuk menampilkan pesan error adalah raise_application_error(kode_error,'...kalimat pesan error...'); (ecara defaul pesan tidak akan ditampilkan karena serveroutput masih off. ,ntuk melihat status ser%er output dengan perintah show serveroutput; dan untuk merubah status ke on adalah set serveroutput on;

32

(intak untuk membuat trigger create or replace trigger nama_trigger Trigger_time trigger_event Begin kondisi Trigger_statement nd; (intak untuk Trigger sebagai pemicu perubahan di table lain create or replace trigger nama_trigger event_trigger !or each row begin kondisi "ang diinginkan pern"ataan trigger# statement s$l pada table lain akhir kondisi end; D. Praktik -. Praktikkan perintah berikut dan amati hasil yang diperoleh create table %(a number); create table "(varchar&('()); insert ) !rom a; select ) !rom "; insert into a values(*(); select ) !rom a; select ) !rom "; insert into a values(+&(); select ) !rom a; select ) !rom "; create or replace trigger pemicu a!ter insert on % !or each row begin i! ,new.a - +(( then insert into " values('berhasil update dan masuk "'); dbms_output.put_line('berhasil update dan masuk di "'); end i!; *. Praktikkan perintah-perintah berikut. create table tt(% number); 33

create or replace trigger m"_trig a!ter insert on tt begin .B/0_12T32T.32T_456 ('insert berhasil'); end; insert into % values(+); Membuat /rror create table tt& as select ) !rom hr.emplo"ees; create or replace trigger tt&_sec be!ore insert or update or delete on tt& begin i! trim(T1_789:(0;0.9T ,'.9;'))<'=:5.9;' then raise_application_error(-&(+&>,'ha"o...'); end i!; end; ,bah waktu pada computer untuk diganti hari ju !at. 0estart database. )emudian login sebagai sysdba. (elanjutnya matikan database dengan perintah shut immediate; startup agar hari dalam database samadengan hari pada komputer. ogin sebagai user. delete !rom tt& where emplo"ee_id<+*?; create table tt' as select ) !rom hr.emplo"ees; create or replace trigger trig_tt' a!ter insert or update or delete on tt' !or each row begin dbms_output.put_line('modi!ikasi berhasil'); end; delete !rom tt' where emplo"ee_id<+*?;

34

create or replace trigger trig_tt> be!ore update o! salar" on tt> !or each row begin i! ,new.salar" - (,old.salar" @ (,old.salar" ) (.+)) then raise_application_error(-&(&'>,'kenaikan tidak boleh lebih dari +(A'); end i!; end; update tt> set salar"<salar" @ (salar" ) (.&) where emplo"ee_id<+*B; E. Tu"as $kan diberikan pada saat praktikum.

35

Anda mungkin juga menyukai