• CURSOR DAPAT DIILUSTRASIKAN SEBAGAI PENAMPUNG SEKALIGUS POINTER ATAS HASIL EKSEKUSI
QUERY.
• PADA DASARNYA PERINTAH “SELECT ..” PADA PL/SQL MERUPAKAN SEBUAH CURSOR.
• TERDAPAT DUA MACAM CURSOR, YAITU: CURSOR IMPLISIT DAN CURSOR EKSPLISIT
CURSOR IMPLISIT
• MERUPAKAN PERINTAH SELECT STATEMENT DENGAN KLAUSA INTO YANG TERDAPAT DI DALAM BLOK
PL/SQL DAN HARUS MENGHASILKAN SATU BARIS RECORD.
• JIKA HASIL CURSOR IMPLISIT INI LEBIH DARI SATU BARIS ATAU TIDAK MENGHASILKAN SATU BARIS
PUN, MAKA ORACLE AKAN MENGELUARKAN PESAN KESALAHAN.
• KLAUSA INTO PADA CURSOR IMPLISIT DIPAKAI UNTUK MENUGASKAN NILAI HASIL PROSES SELECT KE
DALAM VARIABEL-VARIABEL YANG DIPILIH.
CONTOH :
PENJELASAN
• JIKA NILAI NIM SAMA DENGAN 30108001 MAKA HASIL PROSES SELECT MENGHASILKAN 1 BARIS
SEDANGKAN JIKA NIM_NYA DIGANTI DENGAN NILAI LAIN DIMANA NILAI TERSEBUT TIDAK AKAN
MENGHASILKAN SATU BARIS PUN, MAKA ORACLE AKAN MENGELUARKAN PESAN KESALAHAN.
• DEMIKIAN PULA JIKA KLAUSA WHERE PADA CURSOR DI ATAS DIHILANGKAN SEMENTARA DI DALAM
TABEL PROYEK TERDAPAT LEBIH DARI SATU BARIS, MAKA CURSOR TERSEBUT TIDAK DAPAT
MENAMPUNG SEMUA BARIS YANG DITERIMA.
• HAL INI AKAN MENIMBULKAN ERROR “EXACT FETCH RETURNS MORE THAN REQUESTED NUMBER OF
ROWS”.0020
CONTOH IMPLICIT CURSOR
HASILNYA
CONTOH 2
HASILNYA
CONTOH KE 3
HASILNYA
CURSOR EKSPLISIT
• TIDAK SEPERTI CURSOR IMPLISIT, CURSOR EKSPLISIT HARUS DIDEKLARASIKAN TERLEBIH DAHULU
SEBELUM DIGUNAKAN.
• TERDAPAT EMPAT TAHAPAN PENGGUNAAN CURSOR EKSPLISIT INI YAITU: DECLARE, OPEN, FETCH DAN
TERAKHIR ADALAH CLOSE.
STATEMENT DECLARE
• MERUPAKAN DEKLARASI NAMA CURSOR DAN DEFINISI STRUKTUR QUERY YANG AKAN DILAKUKAN DI
DALAMNYA.
CONTOH:
DECLARE
CURSOR CUR1 IS
SELECT NIM, NAMA, ALAMAT FROM MAHASISWA
STATEMENT OPEN
OPEN NAMA_CURSOR;
CONTOH:
OPEN CUR1;
STATEMENT FETCH
• FETCH MERUPAKAN PERINTAH UNTUK MENGAMBIL ISI CURSOR, DIMANA ISI DARI CURSOR TERSEBUT
ADALAH HASIL QUERY YANG TELAH DIDEKLARASIKAN PADA STATEMENT DEKLARASI CURSOR.
• DAN TIAP-TIAP FIELD HASIL QUERY TERSEBUT KEMUDIAN DITAMPUNG DALAM VARIABLE-VARIABLE YANG
TIPE DATANYA SESUAI DENGAN TIPE-TIPE KOLOM QUERY PADA STATEMEN DEKLARASI.
CLOSE NAMA_CURSOR;
PENJELASANNYA :
SETELAH PEMROSESAN QUERY SELESAI, CURSOR HARUS DITUTUP DENGAN SATATEMEN CLOSE INI.
BERIKUT INI ADALAH ATRIBUT-ATRIBUT UNTUK MENDAPATKAN STATUS CURSOR
SETIAP ATRIBUT DALAM PENGGUNAANNYA HARUS DIDAHULUI DENGAN NAMA CURSOR.
CONTOH:
HASILNYA :
CURSOR FOR LOOP
• ADA SEBUAH CARA UNTUK MENGAMBIL ISI CURSOR SECARA OTOMATIS, YAITU DENGAN STRUKTUR PENGULANGAN
FOR LOOP.
• NAMA RECORD YANG DIDEFINISIKAN SESUDAH FOR MERUPAKAN PENDEKLARASIAN YANG HANYA
INTERNAL DI DALAM LOOP, DAN RUANG LINGKUPNYA BERSIFAT INTERNAL SAMPAI LOOP BERHENTI.
• SEBENARNYA DI DALAM LOOP FOR, CURSOR TIDAK HARUS DIDEKLARASIKAN TERLEBIH DAHULU.
CONTOH MENGGUNAKAN LOOP-EXIT:
HASILNYA
CONTOH MENGGUNAKAN WHILE-LOOP
HASIL
CONTOH MENGGUNAKAN FOR-IN-LOOP
HASILNYA
CONTOH MENGGUNAKAN FOR-IN-LOOP TANPA MENDEKLARASIKAN
CURSOR
HASILNYA
LANJUT DENGAN TUGAS
TUGAS PENDAHULUAN :