26 Haziran 2007 Salı

Kürsörler

Oracle, PL/SQL ifadelerini işlemek ve işlem bilgilerini depolamak için çalışma alanları kullanır. Bir PL/SQL yapısı olan kürsör, bir çalışma alanını isimlendirip orda depolanmış bilgiye ulaşmamızı sağlar. Kürsörler ikiye ayrılır: kendiliğinden ve açıkça belirtilmiş.

PL/SQL, sadece tek bir satır döndüren sorgular da dahil olmak üzere bütün veri işleme ifadeleri için kendiliğinden bir kürsör deklare eder. Tek bir satırdan fazla sonuç döndüren sorgular için, satırları tek tek işlemek için, kendiniz açıkça bir kürsör belirtebilirsiniz.

Çok satırlı bir sorgunun döndürdüğü sonuçlara sonuç kümesi denir; büyüklüğü sorgu kriterine uyan satırların sayısı kadardır. Açıkça belirtilmiş bir kürsör, sonuç kümesindeki hali hazırdaki satıra işaret eder. Böylece her seferinde tek bir satır işlenebilir. Aşağıdaki örnekte c1 adlı kürsör deklare edilmektedir.

DECLARE
CURSOR c1 IS
SELECT empno, ename, job FROM emp WHERE deptno = 20;

Bir kürsörü kontrol etmek için OPEN (aç), FETCH (al) ve CLOSE (kapat) komutları kullanılır. OPEN komutu kürsörle ilişkilendirilmiş sorguyu uygular, sonuç kümesini belirler ve kürsörü ilk satırın başına yerleştirir. FETCH komutu hali hazırdaki satırı alır ve kürsörü bir sonraki satırın başına yerleştirir. Son satır da işlendikten sonra CLOSE komutu kürsörü devre dışı bırakır.

Hiç yorum yok: