PL/SQL Programlama -8

Merhaba PL/SQL yazılarına devam ediyoruz. Bir önceki yazıda döngülere başlamıştık bu yazıda da döngülere devam edip bitireceğiz, bir sonrak, yazıda da prosedür ve fonksiyonları göreceğiz. Şimdi kaldığımız yerden devam edelim.

WHILE LOOP:

Bu döngü yapısında koşul sağlandığı sürece çalışacak olan kod bloğu çalışır.

Bir örnek ile devam edelim 1 ile 50 arasındaki tek sayıların toplamını bulalım;
DECLARE

ilk_sayi NUMBER;

son_sayi NUMBER;

toplam NUMBER DEFAULT 0;

BEGIN

son_sayi:=50;

ilk_sayi:=1;

WHILE(ilk_sayı < son_sayi)

LOOP

toplam:=toplam+ilk_sayii;

ilk_sayi:=ilk_sayi+2;

END LOOP

DBMS_OUTPUT.PUT_LINE('Tek saylarin toplami ='||toplam);

END;

/

FOR LOOP:

Bu döngüde belli bir sayıda tekrarlanacak olan kod bloklarının kullanılabileceği döngü tipidir. Bir örnek ile anlamaya çalışalım.

1 ile 10 arasındaki sayıları ekrana yazalım.

BEGIN

FOR i IN 1..10 LOOP

DBMS_OUTPUT.PUT_LINE('SAYI = '||TO_CHAR(İ));

END LOOP;

END;

/

Reverse FOR LOOP:

FOR LOOP döngüsünde yapılacak döngü değerlerinin tersten ilerleyeceği işlemlerde IN yanına REVERSE kullanarak işlemleri gerçekleştiririz.

BEGIN

FOR i IN REVERSE 1..10 LOOP

DBMS_OUTPUT.PUT_LINE('SAYI = '||TO_CHAR(İ));

END LOOP;

END;

/

FOR LOOP -EXIT :

FOR döngümüzde alınacak veriye göre döngümüz erken bitebilir bu durumlarda EXIT ile akışı sonlandırabiliriz. Örnek üzerinden devam edelim,

DECLARE

ilkdeger NUMBER:=1;

sondeger NUMBER:=5;

sayibul NUMBER:=3;

BEGIN

FOR sayi IN ilkdeger..sondeger

LOOP

DBMS_OUTPUT.PUT_LINE('Sayi = '||sayi);

EXIT WHEN sayi=sayibul;

END LOOP;

END;

/

Böylelikle döngüler konusunu bitirmiş olduk gelecek yazıda fonksiyon ve prosedürlere başlayacağız görüşmek üzere..

About Deniz Parlak

Hi, i’m Security Data Scientist & Data Engineer at My Security Analytics. I have experienced Advance Python, Machine Learning and Big Data tools. Also i worked Oracle Database Administration, Migration and upgrade projects. For your questions [email protected]

Leave a Reply

Your email address will not be published. Required fields are marked *