Rabu, 27 Oktober 2010





Cursor Implicit

cursor implisit sama dengan cara biasa tetapi pada kursor ini kita tidak perlu mendifinisikan bentuk dan jumlah variabel tersebut. tetapi hanya dapat menampilkan 1 data saja, jika pada tabel terdapat nama yang sama lebih dari 1 maka data tidak akan keluar.
contoh :

pada table hr dibuat perintah untuk mencari nama depan employees. tampilan nya adalah nama depan email dan nomor telepon employees tersebut.



declare
nama_cari employees.first_name%type;

nama_depan employees.first_name%type;
email employees.email%type;
telepon employees.phone_number%type;
begin
nama_cari:='&Masukkan_nama';
select first_name,email,phone_number
into nama_depan,email,telepon
from employees where first_name=nama_cari;
dbms_output.put_line('nama :'||nama_depan);
dbms_output.put_line('email :'||email);
dbms_output.put_line('telepon :'||telepon);
end;

Cursor Explicit


DOFC (Declare, Open, Fetch, Close)


sama halnya seperti cursor implisit namun perbedaan dari cursor explicit, apabila ada data yang sama misal nama yang sama lebih dari 1 orang maka data nama tersebut akan di tampilan semua.

misalkan pada tabel employees terdapat 3 nama peter maka dengan menggunakan cursor explicit data dari ketiga nama peter tersebut masing-masing akan di tampilkan.




declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
email employees.email%type;
telepon employees.phone_number%type;
cursor ANU is
select first_name,email,phone_number
from employees
where first_name=nama_cari;
begin
nama_cari:='&Masukkan_nama';
open ANU;
LOOP
fetch ANU into nama_depan,email,telepon;
exit when ANU%notfound;
dbms_output.put_line('-----------------------------------');
dbms_output.put_line('nama :'||nama_depan);
dbms_output.put_line('email :'||email);
dbms_output.put_line('telepon :'||telepon);
dbms_output.put_line('-----------------------------------');
end loop;
close ANU;
end;
/

1 komentar:

wahyu85 mengatakan...

sudah cukup bagus dengan ilustrasi tapi penjelasannya mungkin bisa ditambahkan lagi. terima kasih gilang.