You are on page 1of 11

Using Explicit Cursors

CURSOR di Oracle
• Pada block PL/SQL kita tidak bisa
menampilkan beberapa baris dengan
menggunakan perintah SELECT secara
langsung.
• Untuk mengatasi hal tersebut, maka kita
dapat menggunakan sebuah cursor.
• Cursor dapat menampung banyak nilai berupa
baris atau record.
– Nilai-nilai yang disimpan dalam sebuah kursor
kemudian dapat dimanipulasi sehingga dapat
digunakan sesuai kebutuhan.
Tipe Cursor
1. Implicit Cursor
Merupakan Cursor yang dideklarasikan dan
dikelola secara otomatis oleh PL/SQL untuk
semua operasi DML SQL dan PL/SQL SELECT
Statement
2. Eksplicit Cursor
Merupakan Cursor yang dikelola dan
dideklarasikan oleh Programmer
4 tahap Membuat cursor
• Dalam terdapat DECLARE
DECLARE digunakan untuk mendeklarasikan cursor yang akan
kita gunakan
• OPEN
OPEN digunakan untuk mengaktifkan cursor yang akan kita
gunakan
• FETCH
FETCH digunakan untuk mengambil data dari cursor, dan
kemudian data tersebut kita tampung ke dalam satu atau
beberapa variabel.
• CLOSE
CLOSE digunakan untuk menonaktifkan atau menutup cursor
yang kita gunakan
metode LOOPING
Contoh cursor
• 1. mengambil 1 data :
• DECLARE
• CURSOR emp_cursor IS
• SELECT employee_id, first_name,last_name FROM employees
• WHERE department_id =30;
• empno employees.employee_id%TYPE;
• fname employees.first_name%TYPE;
• lname employees.last_name%TYPE;
• BEGIN
• OPEN emp_cursor;
• FETCH emp_cursor INTO empno, fname, lname;
• DBMS_OUTPUT.PUT_LINE( empno ||' '||fname ||' ' || lname);
• END;
Contoh cursor
2. mengambil sejumlah data :
SELECT employee_id, first_name,last_name
FROM employees
WHERE department_id =30;
dengan Cursor :
DECLARE
CURSOR emp_cursor IS
SELECT employee_id, first_name,last_name
FROM employees
DECLARE
CURSOR emp_cursor IS
SELECT employee_id, first_name,last_name FROM employees
WHERE department_id =30;
empno employees.employee_id%TYPE;
fname employees.first_name%TYPE;
lname employees.last_name%TYPE;
BEGIN
OPEN emp_cursor;
LOOP
FETCH emp_cursor INTO empno, fname,lname;
EXIT WHEN emp_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE( empno ||' '||fname ||' ' || lname);
END LOOP;
END;
3. LATIHAN
• buat program dengan cursor untuk mencetak
employee_id, first_name, salary para IT_PROG
(=job_id)
• Tanpa program CURSOR :
– SELECT employee_id, first_name,last_name,salary
FROM employees WHERE job_id ='IT_PROG';
Semua data
4. buat program dengan cursor untuk
menampilkan employee_id, first_name,
last_name dari tabel employees
Jumlah Data dibatasi
5. buat program dengan cursor untuk
menampilkan employee_id, first_name,
last_name dari tabel employees hanya untuk 10
data.
Tampilan hasil :

You might also like