Döngü İçerideyken Oracle Örnekle PL/SQL
⚡ Akıllı Özet
Oracle PL/SQL WHILE döngüsü, bir koşul doğru kaldığı sürece bir kod bloğunu tekrarlar. Her yinelemeden önce çıkış koşulunu test eden bir giriş kontrol döngüsüdür, bu nedenle blok sıfır kez çalışabilir ve açık bir EXIT anahtar kelimesine ihtiyaç duymaz.

PL/SQL While Döngüsü nedir?
MKS Döngü sırasında PL/SQL'de `döngü` ifadesi, temel döngü ifadesine benzer şekilde çalışır, ancak çıkış koşulu döngünün en başında yer alır. Çıkış koşulu yürütmeden önce kontrol edildiği için, yürütme bloğunun yalnızca koşul sağlandığında çalıştığı bir giriş kontrol döngüsü gibi çalışır.
Döngüden çıkmak için açıkça 'EXIT' anahtar kelimesine gerek duymaz, çünkü koşulu her seferinde örtük olarak doğrular.
PL/SQL While Döngüsü Söz Dizimi
WHILE <EXIT condition> LOOP <execution block starts> . . . <execution_block_ends> END LOOP;
- 'WHILE' anahtar kelimesi döngünün başlangıcını, 'END LOOP' ise sonunu belirtir.
- Çıkış koşulu, yürütme bölümü başlamadan önce her seferinde değerlendirilir.
- Çalıştırma bloğu, çalıştırılması gereken tüm kodu içerir.
- Yürütme bölümü, herhangi bir yürütülebilir ifade içerebilir.
Örnek Oracle PL/SQL While Döngüsü
Bu örnekte, WHILE döngüsü kullanarak 1'den 5'e kadar sayıları yazdırıyoruz.

DECLARE a NUMBER := 1; BEGIN dbms_output.put_line('Program started'); WHILE (a <= 5) LOOP dbms_output.put_line(a); a:= a+1; END LOOP; dbms_output.put_line('Program completed'); END; /
Code Açıklama:
- Code 2 hattı: 'a' değişkenini 'NUMBER' olarak tanımlayıp '1' değeriyle başlatıyoruz.
- Code 4 hattı: “Program başlatıldı” ifadesinin yazdırılması.
- Code 5 hattı: 'WHILE' anahtar kelimesi döngünün başlangıcını işaretler ve 'a' değerinin 5'ten küçük veya 5'e eşit olup olmadığını kontrol eder.
- Code 7 hattı: 'a'nın değerini yazdırır.
- Code 8 hattı: 'a' değerini 1 artırır.
- Code 9 hattı: 'END LOOP' anahtar kelimesi, yürütme bloğunun sonunu işaretler.
- 7. ve 8. satırlar, 'a' değeri 6'ya ulaşana kadar çalışmaya devam eder; bu noktada koşul FALSE değerini döndürür ve kontrol programdan çıkar. döngü.
- Code 10 hattı: “Program tamamlandı” ifadesinin yazdırılması.
WHILE Döngüsü, FOR Döngüsü ve Temel Döngü Karşılaştırması
PL/SQL üç döngü türü sunar ve doğru olanı seçmek kodun anlaşılır olmasını sağlar. WHILE döngüsü koşula bağlı tekrarlamalar için uygundur, diğer ikisi ise sabit bir sayım veya açıkça kontrol edilen bir çıkış için uygundur.
| döngü | Çıkış kriteri | En iyi kullanım zamanı |
|---|---|---|
| WHILE döngüsü | En üstteki koşul yanlış hale gelir. | Tekrarlama sayısı bilinmiyor. |
| Döngü için | Sayaç, aralığın sonuna ulaşır. | İterasyon sayısı biliniyor. |
| Temel döngü | Blokta açıkça belirtilmiş ÇIKIŞ | Çıkış manuel olarak kontrol ediliyor. |
WHILE döngüsü koşulunu en başta test ettiği için, koşul baştan yanlışsa gövde sıfır kez çalışabilir. Bu, gövdesi her zaman en az bir kez çalışan temel bir döngüden en önemli farktır.
Sonsuz While Döngüsünden Kaçınma
WHILE döngüsü tamamen kontrol değişkeninin çıkış koşuluna doğru hareket etmesine bağlıdır. Eğer bu durum hiç gerçekleşmezse, döngü sonsuza kadar çalışır ve oturum donar. Bunu önleyen üç alışkanlık vardır:
- Her yinelemede sayacı değiştirin. Örnekte, döngü içinde 'a' değeri artırılıyor; bu satırı kaldırmak, döngünün sonsuza kadar devam etmesine neden olurdu.
- Sınırı test edin. Koşulun, yalnızca ideal durum için değil, başlangıç değeri için de yanlış olabileceğini doğrulayın.
- Güvenlik için "ÇIKIŞ YAPILDIĞINDA" uyarısı ekleyin. Veri odaklı bir döngü için, maksimum yineleme sayısında kullanılan EXIT WHEN ifadesi, beklenmedik bir değere karşı koruma görevi görür.
Tekrarlama sayısı gerçekten sabit olduğunda, FOR döngüsü, sayacı otomatik olarak yönetildiği için riski tamamen ortadan kaldırır.
