Aşağıdaki örnek, employees tablosundaki satırların ad ve soyadlarını birleştirip output'a basmaktadır. Cursor kullanılmakadır.
declare
cursor c1 is select * from employees;
v_employees employees%ROWTYPE;
begin
open c1;
loop
fetch c1 into v_employees;
exit when c1%NOTFOUND;
dbms_output.put_line(v_employees.first_name || ' ' || v_employees.last_name);
end loop;
close c1;
end;
/
Declare bölümünde c1 cursor'u tanımlanmıştır ve tüm employees tablosu alınmaktadır. v_employees ise bir employees satırını tutacak değişkendir (bu değişkene fetch edilecektir). Kod bölümünde önce open c1 şeklinde cursor açılır ve satırlar loop için v_employees değişkenine fetch c1 into v_employees ile doldurulur (fetch). Eğer satır var ise oputput'a ad soyad basılır. Loop sonunca cursor kapatılmalıdır.
Tüm satırı almak yerine sadece ad ve soyad bilgileri alınabilir. Aşağıdaki örnek bunu yapmaktadır:
declare
cursor c1 is select first_name,last_name from employees;
v_firstname employees.first_name%TYPE;
v_lastname employees.last_name%TYPE;
begin
open c1;
loop
fetch c1 into v_firstname,v_lastname;
exit when c1%NOTFOUND;
dbms_output.put_line(v_firstname || ' ' || v_lastname);
end loop;
close c1;
end;
/
Bu örnekte tüm satırın bir değişkene atanması yerine sadece kullanılan değerler atanmıştır.