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...--
Semoga bermanfaat
BalasHapus:)
Aaamiiiin,
BalasHapusartikelnya cukup bagus, ada penjelasan dengan contoh dan ilustrasi, terima kasih Tangi.
Trimakasih bnyak pak!!
BalasHapus