Trigger adalah blok PL/SQL yang disimpan di dalam database dan akan dieksekusi ketika kita melakukan perintah-perintah SQL dalam DML (Data Manipulation Language) yang meliputi DELETE, UPDATE atau INSERT pada sebuah tabel. Fungsi dari trigger ini sendiri adalah untuk membantu dalam menjaga integritas dan konsistensi data.
Dengan adanya trigger ini akan meringankan kita dalam membangun sebuah aplikasai karena kita sudah tidak perlu lagi untuk melakukan validasi data.
Sebelum kita membuat sebuah trigger, perlu kita ketahui terlebih dahulu event yang dapat digunakan untuk mengaktifkan trigger yang kita buat. Event-event tersebut antara lain :
1. BEFORE INSERT : Mengaktifkan trigger sebelum statemen INSERT
2. AFTER INSERT : Mengaktifkan trigger setelah statemen INSERT
3. BEFORE UPDATE : Mengaktifkan trigger sebelum statemen UPDATE
4. AFTER UPDATE : Mengaktifkan trigger setelah statemen UPDATE
5. BEFORE DELETE : Mengaktifkan trigger sebelum statemen DELETE
6. AFTER DELETE : Mengaktifkan trigger setelah statemen DELETE
Syntag:
CREATE OR REPLACE TRIGGER nama_trigger
(BEFORE | AFTER) statemen ON nama_tabel
FOR EACH ROW
DECLARE
--berisi deklarasi variabel
BEGIN
--berisi statemen-statemen yang akan dieksekusi
END;
Keterangan :
1. REPLACE : digunakan untuk mengganti trigger yang lama dengan trigger yang baru akan kita buat.
2. BEFORE : Digunakan untuk mendeklarasikan bahwa trigger akan dieksekusi sebelum perintah SQL dilakukan.
3. AFTER : Digunakan untuk mendeklarasikan bahwa trigger akan dieksekusi setelah perintah SQL dilakukan.
4. Statemen : Ini adalah statemen SQL dalam DML yang kita bahas diatas tadi, meliputi DELETE, UPDATE atau INSERT.
sebagai contohnya kita akan membuat trigger dengan nama trigger_coba yang dapat menampilkan teks 'Tabel barang telah di update'. Kodenya seperti ini :
create or replace trigger_coba
after update on barang
for each row
begin
dbmns_output.put_line('Tabel barang telah di update');
end;
Penjelasan :
Ketika kita seleseai (AFTER) meng-update tabel barang maka akan keluar teks 'Tabel barang telah di update'.
============================================================================
Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view, skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event. Trigger merupakan store procedure yang dijalankan secara automatis saat user melakukan modifikasi data pada tabel. Modifikasi data yang dilakukan pada tabel yaitu berupa perintah INSERT, UPDATE, dan DELETE. INSERT , UPDATE dan DELETE bisa digabung jadi satu trigger yang dinamakan Multiple Trigger.
Tipe dari trigger adalah :
· Application trigger : diaktifkan pada saat terjadi event yang berhubungan dengan sebuah aplikasi
· Database trigger : diaktifkan pada saat terjadi event yang berhubungan dengan data (seperti operasi DML) atau event yang berhubungan dengan sistem (semisal logon atau shutdown) yang terjadi pada sebuah skema atau database.
Trigger perlu dibuat pada saat :
· Membentuk sebuah aksi tertentu terhadap suatu event
· Memusatkan operasi global
Trigger tidak perlu dibuat, jika :
· Fungsionalitas yang diperlukan suatu ada pada Oracle server
· Duplikat atau sama dengan fungsi trigger yang lain.
Sintak penulisan dari database trigger, berisi komponen berikut :
1. Trigger timing :
a. Untuk tabel : BEFORE, AFTER
b. Untuk view : INSTEAD OF
2. Trigger event : INSERT, UPDATE atau DELETE
3. Nama tabel : yaitu nama tabel atau view yang berhubungan dengan trigger
4. Tipe trigger : Baris atau Pernyataan (statement)
5. klausa WHEN : untuk kondisi pembatasan
6. trigger body : bagian prosedur yang dituliskan pada trigger
Trigger timing adalah waktu kapan trigger diaktifkan. Ada tiga macam trigger timing, yaitu :
· BEFORE : trigger dijalankan sebelum DML event pada tabel
· AFTER : trigger dijalankan setelah DML event pada tabel
· INSTEAD OF : trigger dijalankan pada sebuah view.
Trigger event ada 3 kemungkinan : INSERT, UPDATE atau DELETE.
Pada saat trigger event UPDATE, kita dapat memasukkan daftar kolom untuk mengidentifikasi kolom mana yang berubah untuk mengaktifkan sebuah trigger (contoh : UPDATE OF salary ... ). Jika tidak ditentukan, maka perubahannya akan berlaku untuk semua kolom pada semua baris.
Tipe trigger ada 2 macam, yaitu :
· Statement : trigger dijalankan sekali saja pada saat terjadi sebuah event. Statement trigger juga dijalankan sekali, meskipun tidak ada satupun baris yang dipengaruhi oleh event yang terjadi.
· Row : trigger dijalankan pada setiap baris yang dipengaruhi oleh terjadinya sebuah event. Row trigger tidak dijalankan jika event dari trigger tidak berpengaruh pada satu baris pun.
Trigger body mendefinisikan tindakan yang perlu dikerjakan pada saat terjadinya event yang mengakibatkan sebuah trigger menjadi aktif.
======================================================================================================
Fitri is Mine ....
PhiPhi Yuhuuu
Rabu, 21 Desember 2011
Jumat, 28 Oktober 2011
Materi Procedure
Note
Procedure adalah suatu subprogram yang hanya
memberikan satu action.
User_ source è Select text
From
user_source
ð
Digunakan untuk melihat source
code dari suatu procedure.
User_object è digunakan untuk melihat jika procedure tersebut salah atau tidak/
kesalahan dari status dan valid atau tidaknya sebuah procedure tersebut.
Ada user yang dimana dikasih Grant untuk
mencreate suatu procedure maka hasil dari create yang akan terlihat adalah
create procedure, functions dan packages.
Packages è adalah dimana suatu kumpulan dari beberapa subprogram procedure dan
functions.
Untuk melihat hasil validasi dari suatu
procedure è user_object
Begitu juga untuk melihat tanggal dari source
code procedure è user_object
User _error è Digunakan untuk melihat kesalahan syntag dari sebuah procedure atau
package.
Grant
è Digunakan untuk memberikan hak akses pada suatu procedure
Revoke è
Digunakan untuk memutuskan dari hak akses pada suatu procedure
Jangan sampai salah untuk menentukan antara
syntag Grant Execute dan Grant Update
Grant è Grant
Execute : Dimana suatu user/admin yang telah diberikan hak akses oleh grant
untuk melakukan apa saja termasuk update data pada suatu tabel.
Grant è Grant
Select : Dimana suatu hak akses yang diberikan untuk user yang hanya dapat
melihat data dari suatu tabel tersebut.
Grant è Grant
Update : Dimana suatu perintah hak akses untuk hanya melakukan update dari suatu
tabel.
Kesimpulan : Jadi jangan terjebak antara Grant
Execute dan Grant Update.
Example :
Pada saat user diberikan hak akses oleh
SistAdmin untuk mencreate nama dari data ‘beta’ tanpa suatu priviledge apapun
maka hasil create dari tabel akan gagal.
Priviledge è Suatu Hak atau kebebasan tertentu untuk melakukan sesuatu (hak akses).
Priviledge dalam suatu eksekusi adalah untuk
suatu procedure bukan untuk suatu tabel.
Exam : Perintah untuk Syntag Grant :
ð
Grant Execute On Update_theater to
Jsmith;
Jika ada procedure di Drop è Lalu akan di Roll back maka hasilnya akan gagal.
Jika ada procedure di Delete è Lalu akan di rollback maka hasilnya akan sukses.
Exception Untuk Handle Error :
ð
Dimana suatu syntag error akan
memberikan validasi setiap data jika suatu procedure tersebut akan melakukan
apa untuk menghandle eror dari suatu syntag program.
Parameter IN dan OUT :
IN è Suatu
syntag subprogram yang digunakan untuk memberikan perintah inputan.
OUT è Suatu
syntag subprogram yang digunakan untuk memberikan perintah dalam
tampilan/display hasil dari proses.
Parameter In è Dimana suatu parameter yang di default nol jika berdampingan dengan
IN.
Parameter In & Out è Dimana suatu parameter yang digabungkan dan di default nol maka hasil
akan eror.
Dan Suatu procedure tetap akan tercreate
meskipun di Syntag BEGIN isi dari procedure nya adalah Null.
Example : Jika di Parameter In di default 34,
artinya Jika IN bisa di default meskipun kosong inputan nya, dan jika inputan
kosong maka secara otomatis inputan tersebut akan terisi dengan angka inputan
dari default.
OUT
tidak boleh di Default è karena Out merupakan tampilan/display
hasil.
Di parameter tidak perlu adanya variabel
seperti Number(8), karena di syntag parameter tidak perlu adanya type variabel
seperti itu, seharusnya di parameter variabel nya akan tercreate dengan Data type is required.
Makul PBD II
Second
Note
Syntag untuk manipulasi data :
-
Insert
-
Update
-
Delete
-
Merge
Example for syntag manipulating data insert :
Begin
Insert into employees
( employee_id, first_name, last_name, email,
hire_date, job_id, salary)
Values
( employees_seq.Nextval, ‘ Ruth’, ‘Cors’, ‘
Rcores’, sysdate ‘ Ad_ASST’, 5000)
End;
/
Note Makul PBD II
Note Makul Pemrograman Basis Data II
One Note
What a PL/SQL ?
Syntag PL/SQL è Declare
( Tempat mendisripsikan variabel tampungan
)
Begin
Select ( Tempat untuk menampilkan kolom2
dari tabel )
Into ( Tempat variabel yg menjadi tampungan
)
From
Where
End;
Source untuk syntag Cetak Hasil
:
SET SERVER OUTPUT ON
DECLARE
....
BEGIN
....
Dbms_output.put_line (“ The Sum Salary is “ ||
to_char (v_sum_sal));
END;
Rabu, 12 Oktober 2011
SOSIS MASAK PEDAS ..
·
Bahan:
250 g sosis sapi, potong sesuai selera
100 g asparagus, potong-potong
150 ml air
4 sdm minyak goreng
250 g sosis sapi, potong sesuai selera
100 g asparagus, potong-potong
150 ml air
4 sdm minyak goreng
Bumbu:
3 buah cabe merah, haluskan
2 buah cabai hijau, potong serong
5 siung bawang putih, haluskan
4 siung bawang merah, haluskan
1 sdm kecap manis
1 sdt garam halus
3 buah cabe merah, haluskan
2 buah cabai hijau, potong serong
5 siung bawang putih, haluskan
4 siung bawang merah, haluskan
1 sdm kecap manis
1 sdt garam halus
Cara Membuat:
1. Panaskan minyak, tumis bawang merah, bawang putih, cabe merah, dan cabai hijau hingga harum. Masukan potongan sosis, masak hingga sosis berubah warna.
2. Tuang air, kecap manis dan garam. Masak hingga air mendidih. Tambahkan asparagus, masak hingga semua bahan matang dan bumbu meresap. Angkat.
3. Tuang ke dalam pinggan saji. Hidangkan hangat.
1. Panaskan minyak, tumis bawang merah, bawang putih, cabe merah, dan cabai hijau hingga harum. Masukan potongan sosis, masak hingga sosis berubah warna.
2. Tuang air, kecap manis dan garam. Masak hingga air mendidih. Tambahkan asparagus, masak hingga semua bahan matang dan bumbu meresap. Angkat.
3. Tuang ke dalam pinggan saji. Hidangkan hangat.
Untuk 5 Porsi
Tips: Sayur asparagus bisa diganti dengan kembang
kol, buncis atau kapri.
Langganan:
Postingan (Atom)