Örnek

Bir Tablo Satırların Bilgilerini Cursor ile Output'a Basan Örnek

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.
zafer.teker , 10.09.2016

Bu Sayfayı Paylaş:

Fibiler Üyelerinin Yorumları


Tüm üyeler içeriklere yorum ekleyerek katkıda bulunabilir : Yorum Gir



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir