Kamis, 21 Oktober 2010

CURSOR EXPLISIT

Cursor Explisit menggunakan DOFC(Declare, Open, Fetch, Close)

Hal ini biasanya dibuat pada pernyataan SELECT yang mengembalikan lebih dari satu baris.

1. Syntax umum untuk menciptakan kursor
cursor_name CURSOR IS select_statement;

NB : - Cursor-name : Sebuah nama yang cocok untuk kursor
- Select-statement : Sebuah query pilih yang mengembalikan beberapa baris

2. Langkah-langkah membuat Cursor Explisit
- MENYATAKAN kursor pada bagian deklarasi
- TERBUKA kursor di Bagian Eksekusi
- FETCH data dari kursor ke PL / SQL variabel atau catatan di Bagian Pelaksanaan.
- CLOSE kursor di Bagian Eksekusi sebelum Anda mengakhiri PL / SQL Block

3. Cara mengakses kursor explisit
- Buka kursor
syntax : OPEN cursor_name;
- Ambil record dalam satu kursor pada suatu waktu
syntax : FETCH cursor_name INTO record_name; atau FETCH cursor_name INTO variable_list;
- Tutup kursor
syntax : CLOSE cursor_name

4. Ini adlah beberapa atribut untuk memeriksa status dari kursor explisit


5. Contoh :
a. declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
pekerjaan jobs.job_title%type;
gaji employees.salary%type;
cursor magdalena is
select first_name,job_title,salary
from employees e
JOIN jobs j ON(j.job_id=e.job_id)
where first_name=nama_cari;
begin
nama_cari:='&Masukkan_nama';
open magdalena;
loop
fetch magdalena into nama_depan,pekerjaan,gaji;
exit when magdalena%notfound;
dbms_output.put_line('Pegawai bernama '||nama_depan || ' pekerjaannya '|| pekerjaan || ' dan gajinya adalah USD '||gaji);
end loop;
close magdalena;
end;
/

b. declare
nama_cari employees.first_name%type;
nama_depan employees.first_name%type;
email employees.email%type;
telepon employees.phone_number%type;
cursor magdalena is
select first_name,email,phone_number
from employees
where first_name = nama_cari;
begin
nama_cari:='&Masukkan_nama';
open magdalena;
loop
fetch magdalena into nama_depan,email,telepon;
exit when magdalena%notfound;
dbms_output.put_line('Pegawai bernama : '||nama_depan);
dbms_output.put_line('Email : '||email);
dbms_output.put_line('Telepon : '||telepon);
end loop;
close magdalena;
end;
/

:: SEKIAN ::
--JIKA MASIH KURANG, DIMAAFIN YYA...--

3 komentar:

  1. Aaamiiiin,

    artikelnya cukup bagus, ada penjelasan dengan contoh dan ilustrasi, terima kasih Tangi.

    BalasHapus