Senin, 12 Desember 2011

Stored Procedure, Function dan Trigger pada SQL

Stored Procedure


Stored Procedure 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.


Syntax:

Parameter :
  • Parameter dideklarasikan setelah nama subprogram didalam PL/SQL header
  • Parameter melewatkan atau mengkomunikasikan data antara caller dan subprogram
  • Parameter digunakan seperti local variable tapi bergantung pada parameter-passing mode :- IN parameter menyediakan nilai untuk subprogram supaya diproses- OUT parameter mengembalikan sebuah nilai ke caller- IN OUT parameter menyediakan sebuah nilai masukkan dan bisa mengembalikan nilai
 Contoh penggunaan IN parameter















Contoh Penggunaan OUT parameter
Contoh Penggunaan IN-OUT parameter


Stored Function
Function adalah blok PL/SQL yang bias memberikan nilai balik. Function  Bisa disimpan di dalam dalam database sebagai sebuah objek dari skema yang bisa dipanggil berulang. Function dipanggil sebagai bagian dari ekspresi atau  digunakan untuk menyediakan nilai parameter.

Syntax :

Trigger
Trigger adalah sebuah blok PL/SQL atau sebuah blok stored procedure  Yang terhubung dengan tabel, view, skema, atau database. Trigger dijalankan secara  eksplisit kapanpun sebuah event (insert, update, delete atau yang lain)  dilakukan.

Syntax:

CREATE [OR REPLACE] TRIGGER trigger-name
{BEFORE | AFTER}
{INSERT | DELETE | UPDATE | UPDATE OF column-list}
ON table-name
[FOR EACH ROW]
[WHEN (...)]
[DECLARE ... ]
BEGIN
... executable statements ...(PL/SQL statement)
[EXCEPTION ... ]
END [trigger name];

Keterangan Syntax :
  • OR REPLACEBuat trigger baru jika sudah ada. Dapat digunakan juga untuk mengubah  definisi dari trigger yg sudah ada.
  • Trigger‐nameNama dari trigger‐nya
  • BEFOREMengindikasikan ORACLE menjalankan trigger tersebut sebelum suatu  statement
  • AFTERMengindikasikan ORACLE menjalankan trigger tersebut setelah suatu  statement
  • INSERTMengindikasikan ORACLE menjalankan trigger tersebut ketika adanya  statement INSERT row pada suatu table
  • DELETEMengindikasikan ORACLE menjalankan trigger tersebut ketika adanya  statement DELETE row pada suatu table
  • UPDATE..OFMengindikasikan ORACLE menjalankan trigger tsb ketika adanya statement UPDATE pada kolom tertentu dari tabel. Jika OF‐nya dihilangkan maka  trigger dijalankan ketika adanya UPDATE pada setiap kolom.
  • FOR EACH ROWTrigger diaktivasi oleh perubahan pada setiap tuple pada tabel yang  diawasi oleh trigger. Sedangkan jika ini tidak dispesifikasikan, maka  diasumsikan statement trigger, dimana trigger diaktivasi setiap adanya statement INSERT, DELETE atau UPDATE yg dilakukan, tanpa melihat  adanya perubahan pada row atau tidak (bahkan akan diaktivasi walaupun  row yg diawasi tidak berubah)
  • WHENAdalah syarat trigger tersebut bisa dieksekusi PL/SQL statement Merupakan body dari trigger yg menspesifikasikan apa saja yang dilakukan  jika trigger tersebut diaktivasi

Untuk menghapus trigger dari database, gunakan pernyataan DROP TIGGER :

DROP TRIGGER trigger_name;
DROP TRIGGER
derive_commission_pct;