Oleh: denysutani | November 13, 2008

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’)”.


Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Kategori

%d blogger menyukai ini: