Cursor nedir ile ilgili bilgiye detaylı olarak wikipedia ->
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]'inden bakarsınız. Ben kısaca yazıp geçeyim.
Cursor : Basit olarak bahsedecek olursak, programlamadaki for loop(döngüsü) gibi çalışır, veri kümesi içinde satır satır dönmek için kullanılır. Avantajı ise yüksek ölçekli veri işleme işlerini eğer uygulama (programlama) içinde gerçekleştirmeye çalıştığınızda performans sorunu yaşayacaksınız eğer bu tür yüksek ölçekli veritabanı işlerini database üzerinde hallederseniz hem zaman hemde performans olarak oldukça hızlıdır. Küçük bir hatırlatma yapayım, cursor işlemlerini direkt olarak database içinde bir prosedür yada job ile yaparsanız, cursor database'i oldukça yorar ve kaynak(cpu,ram) tüketimini yükseltir. Buna sebep olan ise, cursor üzerinde çalıştığı tabloları ve veri kümelerini ram üzerinde alıp, onun üzerinden işlemesidir.
Bu kadar bilgilendirmeden sonra, makul olan kullanımı ise çalışacağınız tablolar, viewlar 'ı geçiçi bir tablo üzerine atayıp bu geçiçi tablo üzerinden işlem yapmanızdır böylelikle canlı sistem üzerinde asıl olan tabloları lock'lamamış olursunuz ve ram tüketimini düşürürsünüz.
Tanımlanması ;
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
DECLARE
CURSOR cursor_ornek
IS
SELECT COLUMN1, COLUMN2 FROM TABLE;
BEGIN
FOR cursor_satir IN cursor_ornek
LOOP
DBMS_OUTPUT.put_line ('COLUMN 1 : ' || cursor_satir.COLUMN1 || 'COLUMN 2 ' || cursor_satir.COLUMN2);
END LOOP;
END;
Yukarıdaki örnek, cursor'ın tanımlanması ve örnek bir kullanımıdır.