İçeriğe geç

Pl/Sql Döngüler

Spread the love

Plsql resim

İlk yazıda yapısal diller ait özelliklerin SQL’e eklenmesiyle ortaya çıkan Oracle’e has bir dildir demiştik. Bu özelliklerden biride döngülerin kullanılmasıdır. Yapısal dillerde parantez açma ve kapatma işlemine benzer loop açma ve sonlandırma komutları mevcuttur.  Özel döngüleri kullanmadan bile bir loop açılır ve sonlandırılabilir. Sadece loop içerisine looptan çıkıacak kod yazılır.

[sql]DECLARE
n_kosul number;
n_counter number
BEGIN
n_counter := 0;
n_kosul := 10;
loop
n_counter := n_counter + 1;
exit when n_counter>n_kosul;
Dbms_output.put_line(‘Sayac:’ || n_counter);
end loop;
EXCEPTION
when others then
Dbms_output.put_line(‘Hata Oluştu !!!’);
END;
[/sql]
Bu döngü genelde sonsuz döngü yapılmak istendiğinde kullanılır.
For Döngüsü

For döngüsü dönme sayısını bildiğimiz durumlarda kullanılır.
[sql] 
BEGIN
for i in 0..10
loop
Dbms_output.put_line(‘Sayac:’ || i);
end loop;
EXCEPTION
when others then
Dbms_output.put_line(‘Hata Oluştu !!!’);
END;
[/sql]
Cursor Döngüsü

Cursor tablolardan çekilen setleri taımlamak için kullanılır. Cursor loop kullanabilmek için öncelikle cursor tanımlaması yapılması gerekir.
[sql]
DECLARE
cursor c_full_name is
select name,surname
from employee
where id between 10 and 100;
BEGIN
for full_name in c_full_name
loop
Dbms_output.put_line(full_name.name || ‘ ‘ || full_name.surname);
end loop;
EXCEPTION
when others then
Dbms_output.put_line(‘Hata Oluştu !!!’);
END;
[/sql]
While döngüsü

while döngüsü aşağıdaki gibi kullanılır.
[sql]DECLARE
n_count number:=0;
n_max_count := 10;
BEGIN
WHILE n_count <= n_max_count
LOOP
n_count := n_count + 1;
END LOOP;
END;
[/sql]
 

Tarih:Oracle

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.