Thursday 30 June 2011

Triger view procedure

Database Trigger

Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view,

skema atau database yang dijalankan secara implicit pada saat terjadi sebuah event.

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.

CONTOH PEMBUATAN TRIGGER

Contoh berikut ini akan mengaktifkan sebuah trigger pada saat sebuah baris

tunggal dimanipulasi pada tabel :

Misal diberikan perintah DML untuk menyisipkan baris baru ke dalam tabel

sebagai berikut :

INSERT INTO departments (department_id, department_name, location_id)

VALUES (400, 'CONSULTING', 2400);

Berikut ini sintak atau cara penulisan untuk pembuatan DML Statement trigger :

CREATE [OR REPLACE] TRIGGER trigger_name

timing

event1 [OR event2 OR event3]

ON table_name

trigger_body

Berikut contoh pembuatan DML Statement trigger :

CREATE OR REPLACE TRIGGER secure_emp

BEFORE INSERT ON employees

BEGIN

IF (TO_CHAR(SYSDATE,'DY') IN ('SAT','SUN')) OR

(TO_CHAR(SYSDATE,'HH24:MI') NOT BETWEEN '08:00' AND '18:00')

THEN RAISE_APPLICATION_ERROR (-20500,'Penyisipan data pada table

EMPLOYEES hanya diperbolehkan selama jam kerja');

END IF;

END;

/

PERINTAH UMUM

Berikut ini perintah-perintah umum yang digunakan pada trigger.

Untuk mengaktifkan atau menonaktifkan database trigger, digunakan perintah :

ALTER TRIGGER trigger_name DISABLE | ENABLE

Untuk mengaktifkan atau menonaktifkan semua trigger yang berlaku untuk

sebuah tabel, digunakan perintah :

ALTER TABLE table_name DISABLE | ENABLE ALL

Untuk melakukan kompilasi ulang sebuah trigger, digunakan perintah :

ALTER TRIGGER trigger_name COMPILE

Untuk menghapus trigger dari database, digunakan perintah :

DROP TRIGGER trigger_name

Catatan : Semua trigger yang berlaku pada sebuah tabel akan dihapus pada saat tabel

tersebut dihapus dari database.

RINGKASAN:

• Trigger adalah blok PL/SQL atau prosedur yang berhubungan dengan table, view,

skema atau database yang dijalankan secara implicit pada saat terjadi event.

• Tipe dari trigger adalah : Application trigger (diaktifkan pada saat terjadi event

yang berhubungan dengan sebuah aplikasi) dan database trigger (diaktifkan pada

saat terjadi event yang berhubungan dengan data)

• Trigger dibuat pada saat yang tepat jika diperlukan yaitu untuk membentuk sebuah

aksi tertentu terhadap suatu event dan memusatkan operasi global

• Penggunaan trigger yang terlalu berlebihan akan menyebabkan terjadi sifat

ketidaktergantungan yang terlalu kompleks sehingga akan mempersulit

pemeliharaan dari aplikasi yang besar.

• Trigger berisi komponen-komponen : trigger timing, trigger event, nama tabel, tipe

trigger, klausa WHEN dan trigger body.

• Beberapa event pada trigger bisa dikombinasikan dalam sebuah trigger dengan

menggunakan predikat kondisional INSERTING, UPDATING dan DELETING

• Pada Row Trigger, nilai dari kolom sebelum dan sesudah perubahan data dapat

dirujuk dengan menggunakan OLD dan NEW qualifier.

Pengertian Stored Prosedure

Adalah program yang disimpan dalam data base seperti halnya data. Hal ini sebenanya cukup tidak umum, karena kita mengharapkan yang disimpan dlam data base adalah data bukan nya program.

Kemampuan utama SQL Server berada pada Store Procedure dan Fungsi (Fungsi hanya terdapat pada SQL Server 2000)

Dengan adanya Store Procedure, maka program SQL yang telah kita buat :

 dapat digunakan kapanpun

 lebih cepat dan efisien karena bersifat Server Side

 mudah dibuat dan dirawat karena kecil tapi ‘Power Full’

Dapat digunakan kapanpun

Seperti halnya pembuatan prosedur pada C++ / Pascal / Java atau pemrograman yang lain, apabila pembuatan program bersifat modular (dibuat kecil untuk setiap maksud/tujuan), akan lebih baik apabila pemrograman tesebut menggunakan banyak prosedur. Dengan dibuat terpisah, kapanpun diinginkan, hanya tinggal memanggil program tersebut.

Lebih cepat dan efisien

Untuk program yang besar, pembuatan program Server Side, terasa lebih mudah dibandingkan Client Side. Dengan Server Side, program lebih bersifat Netral terhadap semua aplikasi. Disisi Programer, ia tidak perlu mengetahui terlalu mendalam terhadap suatu program aplikasi seperti VB, Delphi, Java , C++ Builder, PHP, ASP, J2ME, WAP, SMS dsb. karena tugas–tugas tersebut sebenarnya dapat dilakukan oleh Server (dalam hal ini SQL Server) VB, Delphi, Java , C++ Builder PHP, ASP, J2ME, WAP, SMS dsb tersebut hanyalah User interface/tampilan belaka, yang hanya berfungsi untuk menampilkan data, memasukkan data, serta memberikan parameter-parameter yang dibutuhkan oleh server untuk menghapus , mengubah, skeduling, backup dan sebagainya. Sedangkan program yang sesungguhnya berada pada Server tersebut.

Mudah dibuat dan dirawat karena kecil tapi ‘Power Full’

Kecil dan PowerFull, akan diperlihatkan pada beberapa contoh berikutnya.

Pembuatan Strore Procedure

Syntax :

CREATE PROCEDURE nama_procedure

[@Parameter1 tipe_data_parameter1,……….., [@ParameterN tipe_data_parameterN]

AS

SQL atau TSQL statement