Translate

17 Aralık 2014 Çarşamba

PL/SQL(2): Cursor Kullanımı



    Selamlar, bu yazıda pl/sql cursor kullanımı anlatılacaktır. Öncelikle, kullanacağımız basit bir table oluşturuyoruz;

    CREATE TABLE dersler
    (
        id INTEGER,
        ad VARCHAR2(50)
 
    );

Tabloya kayıtları insert ediyoruz;


    insert into dersler(id,ad) values(1,'A');

    insert into dersler(id,ad) values(2,'B');

    insert into dersler(id,ad) values(3,'C');

    insert into dersler(id,ad) values(4,'D');

    insert into dersler(id,ad) values(5,'E');



Cursor kullanıma dair ilgili script örneğini şu şekildedir;


DECLARE
   c_id dersler.id%type;
   c_ad dersler.ad%type;

   CURSOR c_dersler is
          SELECT id,ad FROM dersler where id>3;

BEGIN

   OPEN c_dersler;--cursor acılıyor.

   LOOP

      FETCH c_dersler into c_id, c_ad;--cursordaki o anki satır verileri degiskenlere aktarılıyor.

      EXIT WHEN c_dersler%notfound;--cursorda veri kalmadıgı surece dongu bir sonraki veriye gecerek devam ediyor.
   
      IF c_id<5 THEN--id'si 5 den kücük kontrolü yapılıyor.
        dbms_output.put_line(c_id || '=>' || c_ad);
      END IF;
   
   END LOOP;

   CLOSE c_dersler;--islem sonrasında cursor kapatılıyor.

END;
/


Scripti çalıştırdığınızda output olarak göreceğiniz değer ;  4=>D


 Cursor kullanımı ile;

1)İstediğiniz tablo ile ilgili olarak tüm dataların kontrollerini dongu vasıtasıyla satır satır kontrol edebilmeniz mümkündür.
2)İlgilendiğiniz tablodaki istediğiniz şartlara uyan dataları çekebilmenizi ve işleyebilmenizi sağlar.

    Script örneğinde; dersler tablosunda yer alan ders adlarını ve id bilgilerinden id'si 3 den büyük dataları cursor ile ilişkilendirmiş oluyoruz. Döngü içerisinde ise cursor da bulunan id'si 3 den büyük verilerden id'si 5 den küçük olan (id=4) ekrana basılmış oluyor.

    Bu ders ile cursor kullanımına dair fikir edinebilmeniz amaçlanarak basit bir örnek üzerinden anlatım gerçekleştirilmiştir. Faydalı olması dileğiyle, sağlıcakla...




Hiç yorum yok:

Yorum Gönder