Kursor implisit adalah kursor yang dibuat "secara otomatis" untuk Anda oleh Oracle saat Anda menjalankan kueri. Ini lebih sederhana untuk dikodekan, tetapi menderita
- inefisiensi (standar ANSI menetapkan bahwa ia harus mengambil dua kali untuk memeriksa apakah ada lebih dari satu catatan)
- kerentanan terhadap kesalahan data (jika Anda pernah mendapatkan dua baris, itu menimbulkan pengecualian TERLALU_MANY_ROWS)
Contoh
SELECT col INTO var FROM table WHERE something;
Kursor eksplisit adalah kursor yang Anda buat sendiri. Dibutuhkan lebih banyak kode, tetapi memberikan lebih banyak kontrol - misalnya, Anda dapat membuka-ambil-tutup jika Anda hanya menginginkan rekaman pertama dan tidak peduli jika ada rekaman lain.
Contoh
DECLARE
CURSOR cur IS SELECT col FROM table WHERE something;
BEGIN
OPEN cur;
FETCH cur INTO var;
CLOSE cur;
END;