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 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;