1-) PL SQL - CURSOR plsql
Cursor Nedir?
Cursorlar, veri kümesindeki her bir veriyi adım adım bizlere getiren ve bu şekilde satırsal bazda işlem yapmamızı sağlayan yapılardır. Çalışma şekilleri varsayılan olarak ileri doğru olsada ileri ve geri olmak üzere sırasıyla tüm satırları elde etme usulüne dayanır. İleri doğru okuma işlemi yapan Cursorlar geriye doğru okuma işlemi yapanlardan kat be kat hızlı çalışmaktadırlar.
Cursor Neden Kullanılır?
Her yapının bir kullanım nedeni olduğu gibi Cursorların kullanım nedenleride aşağıdaki durumlardır;
- Sorgu neticesinde elde edilen veri kümesinde satır satır gezinerek işlem yapmak
- Diğer kullanıcılar tarafından yapılan değişikliklerin görünürlük seviyesini ayarlamak
için kullanılır.
Cursor yapısı Implicit ve Explicit olmak üzere ikiye ayrılır.
Implicit Cursor:
Veritabanı sorguları yapıldığında oracle tarafından oluşturulan ve yönetilen cursor Implicit olarak adlandırılır.
BEGIN
INSERT ALL
INTO TABLO(SUTUN1, SUTUN2, ...) VALUES('DEĞER1', 'DEĞER2', ...)
INTO TABLO(SUTUN1, SUTUN2, ...) VALUES('DEĞER1', 'DEĞER2', ...)
SELECT * FROM DUAL;
DBMS_OUTPUT.put_line(SQL%ROWCOUNT);
--DBMS_OUTPUT.put_line(sql%FOUND);
--DBMS_OUTPUT.put_line(SQL%NOTFOUND);
--DBMS_OUTPUT.put_line(SQL%ISOPEN);
END;
SELECT, INSERT, UPDATE ve DELETE işlemlerinde SQL isminde cursor açarak ROWCOUNT, FOUND, NOTFOUND, ISOPEN değişkenlerine değer atar.
Explicit Cursor:
Explicit cursor tanımlanarak veriler üzerinde daha fazla kontrol imkanı sağlanır.