Oracle Örnek ile PL/SQL FOR LOOP
⚡ Akıllı Özet
Oracle PL/SQL FOR döngüsü, bir kod bloğunu alt ve üst sınırlar arasında bilinen sayıda tekrarlar. Döngü değişkeni örtük olarak tanımlanır ve kendi kendini artırır, bu nedenle manuel bir sayaca gerek yoktur ve REVERSE anahtar kelimesi döngünün aşağı doğru saymasını sağlar.

FOR döngüsü nedir?
“FOR LOOP” ifadesi, belirli bir koşula bağlı olarak değil, bilinen sayıda kod çalıştırmak istediğinizde en uygunudur.
Bu döngüde, bir alt sınır ve bir üst sınır belirtilir ve döngü değişkeni bu aralıkta kaldığı sürece döngü yürütülür.
Döngü değişkeni kendi kendini artırır, bu nedenle açık bir artırma işlemine gerek yoktur. Döngü değişkeninin bildirilmesine gerek yoktur, çünkü örtük olarak bildirilir.
FOR <loop_variable> in <lower_limit> .. <higher_limit> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
Sözdizimi Açıklaması:
- 'FOR' anahtar kelimesi döngünün başlangıcını, 'END LOOP' ise sonunu belirtir.
- Döngü değişkeni, yürütme bölümü çalıştırılmadan önce her seferinde değerlendirilir.
- Çalıştırma bloğu, çalıştırılması gereken tüm kodu içerir ve herhangi bir yürütülebilir ifadeyi içerebilir.
- `loop_variable`, döngünün yürütülmesi sırasında örtük olarak tanımlanır ve kapsamı yalnızca döngünün içindedir.
- Döngü değişkeni aralık dışına çıktığında, kontrol döngüden çıkar.
- 'REVERSE' anahtar kelimesini lower_limit'in önüne ekleyerek döngünün ters sırada çalışmasını sağlayabilirsiniz.
Örnek 1: Bu örnekte, FOR döngüsü kullanarak 1'den 5'e kadar olan sayıları yazdırıyoruz.
BEGIN dbms_output.put_line('Program started.'); FOR a IN 1 .. 5 LOOP dbms_output.put_line(a); END LOOP; dbms_output.put_line('Program completed.'); END; /
Code Açıklama:
- Code 2 hattı: “Program başlatıldı” ifadesinin yazdırılması.
- Code 3 hattı: 'FOR' anahtar kelimesi döngünün başlangıcını işaretler ve 'a' döngü değişkeni tanımlanır. Artık 1 ile 5 arasında değerler alabilir.
- Code 5 hattı: 'a'nın değerini yazdırır.
- Code 6 hattı: 'END LOOP' anahtar kelimesi, yürütme bloğunun sonunu işaretler.
- 5. satır, 'a' değeri 6'ya ulaşana kadar çalışmaya devam eder; bu noktada koşul başarısız olur ve kontrol döngüden çıkar.
- Code 7 hattı: “Program tamamlandı” ifadesinin yazdırılması.
İç içe geçmiş döngüler
Döngü ifadeleri iç içe de olabilir. Dış ve iç döngüler farklı türde olabilir. İç içe bir döngüde, dış döngünün her yinelemesinde iç döngü tamamen çalışır.
LOOP --outer <execution block starts> LOOP --inner <execution_part> END LOOP; <execution_block_ends> END LOOP;
Sözdizimi Açıklaması:
- Dış ilmeğin içinde bir ilmek daha var.
- Döngüler herhangi bir türde olabilir ve yürütme işlevi aynıdır.
Örnek 1: Bu örnekte, bir FOR döngüsü kullanarak 1'den 3'e kadar olan sayıları yazdırıyoruz. Her sayı, değeri kadar kez yazdırılıyor.
DECLARE b NUMBER; BEGIN dbms_output.put_line('Program started'); FOR a IN 1..3 LOOP b:= 1; WHILE (a>=b) LOOP dbms_output.put_line(a); b:= b+1; END LOOP; END LOOP; dbms_output.put_line('Program completed'); END; /
Code Açıklama:
- Code 2 hattı: 'b' değişkenini 'NUMBER' veri türünde tanımlıyoruz.
- Code 4 hattı: “Program başlatıldı” ifadesinin yazdırılması.
- Code 5 hattı: 'FOR' anahtar kelimesi döngünün başlangıcını işaretler ve 'a' döngü değişkeni tanımlanır. Artık 1 ile 3 arasında değerler alabilir.
- Code 7 hattı: Her seferinde 'b' değerini '1'e sıfırlamak.
- Code 8 hattı: İç döngü sırasında a>=b durumunu kontrol eder.
- Code 10 hattı: Yukarıdaki koşul karşılandığı sürece 'a'nın değerini yazdırır.
- Code 14 hattı: “Program tamamlandı” ifadesinin yazdırılması.
FOR Döngüsü ve Ters FOR Döngüsü
Varsayılan olarak, FOR döngüsü alt sınırdan üst sınıra doğru yukarı doğru sayar. REVERSE anahtar kelimesini eklemek, döngünün aşağı doğru saymasını sağlarken, üst sınırı korur.ping Sınırlar aynı sıradadır. İki form da aşağıda birlikte gösterilmiştir, böylece fark açıkça görülebilir.
| Form | üstbilgi | Değerlerin sıralaması |
|---|---|---|
| yükselen | 1 ila 5 arası bir süre için | 1, 2, 3, 4, 5 |
| Azalan | TERSİNE 1 .. 5 İÇİN | 5, 4, 3, 2, 1 |
REVERSE seçeneği kullanıldığında bile alt sınırın üst sınırdan önce yazıldığını, yalnızca yineleme yönünün değiştiğini unutmayın. Sayımı önceden bilinmeyen döngüler için, temel döngü daha iyi bir seçimdir.




