Stored Procedure dengan Menggunakan Cursor

Setelah belajar mengenai Stored Procedure, kita akan belajar mengenai Cursor. Hasil yang akan didapat oleh Stored Procedur dengan atau tanpa Cursor akan sama. Perbedaannya adalah dengan menggunakan Cursor, kita hanya akan melock 1 row saja, berbeda jika tanpa Cursor yang akan melock semua data yang akan digunakan.

Kekurangan dan kelebihan menggunakan Cursor
+ lock hanya 1 baris saja
+ ada beberapa operasi yang harus menggunakan Cursor
- coding jadi lebih rumit

Sebagai contoh misalnya kita ingin membuat SP untuk mengupdate salary berdasarkan job jika mendapatkan bonus. Ada 2 cara yang dapat dilakukan yaitu tanpa Cursor dan tanpa Cursor

Jika tanpa Cursor, maka Stored Procedure yang diperlukan adalah sebagai berikut
create procedure proc_2(in bonus double,in work varchar(10))
dynamic result sets 1
p1: begin
update staff set salary = salary + bonus where job= work;
end p1

Berikut screen shootnya
Free Image Hosting at www.ImageShack.us

Jika menggunakan Cursor, maka Stored Procedure yang diperlukan adalah sebagai berikut
create procedure proc_1(in bonus double,in work varchar(10))
dynamic result sets 1
p1: begin
declare now_salary double;
declare c1 cursor with return for
select salary from staff where job=work;
open c1;
fetch from c1 into now_salary;
close c1;
set now_salary = now_salary + bonus;
update staff set salary = now_salary where job= work;
end p1

Berikut screen shootnya
Free Image Hosting at www.ImageShack.us
Untuk menjalankannya melalui DB2cmd, Stored Procedure dapat dipanggil dengan menggunakan “db2 call proc_2(100.0,’Mgr’)”.

This entry was posted in DB2 and tagged , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>