Bu Kategoriye İçerik Girin veya Soru Sorun

Kategori İçi Sözlük

Bu Sayfayı Paylaş:

If - Then - Elsif - Else

Oracle'de koşul yapısı aşağıdaki gibidir :
IF kosul THEN
-- if içi
ELSIF
-- else if içi
ELSIF
-- else if içi
ELSE
-- else içi
END IF;
Aşağıda basit bir örnek görülmektedir:
declare
number1 NUMBER(11,2) := 2.22;
BEGIN
IF number1 > 5 THEN
    dbms_output.put_line('5 den buyuk');
ELSIF  number1 > 3 THEN
    dbms_output.put_line('3 den buyuk');
ELSIF  number1 > 1 THEN 
    dbms_output.put_line('1 den buyuk');
ELSE
   dbms_output.put_line('1 den kucuk');
END IF;
END;
/

Yukarıdaki script output'a 1 den buyuk ifadesini yazacaktır

Case When

Oracle'da case'li koşul yapısı aşağıdaki gibidir:
CASE koşul
WHEN deger1 THEN
-- deger 1 kodlari
WHEN deger2 THEN statements_2
-- deger 2 kodlari
WHEN degern THEN
-- deger n kodlari
ELSE
-- deger geri kalan kodlari
END CASE;
ELSE kullanılmak zorunda değildir.
Aşağıda basit bir kullanımı görülmektedir :
DECLARE
  grade CHAR(1) := 'B';
BEGIN
  CASE grade
    WHEN 'A' THEN DBMS_OUTPUT.PUT_LINE('Excellent');
    WHEN 'B' THEN DBMS_OUTPUT.PUT_LINE('Very Good');
    WHEN 'C' THEN DBMS_OUTPUT.PUT_LINE('Good');
    WHEN 'D' THEN DBMS_OUTPUT.PUT_LINE('Fair');
    WHEN 'F' THEN DBMS_OUTPUT.PUT_LINE('Poor');
    ELSE DBMS_OUTPUT.PUT_LINE('No such grade');
  END CASE;
END;
/

Loop

Oracle'de döngü yapmak için Loop kullanılır. Genel yapısı aşağıdaki gibidir :
LOOP
-- dongu içi
END LOOP;
En basit loop EXIT ifadesi ile kullanılır :
LOOP
-- dongu içi
EXIT;
END LOOP;
Aşağıdaki örnek tek bir sefer çalışan bir döngüdür :
DECLARE
BEGIN
LOOP
-- dongu içi
    DBMS_OUTPUT.PUT_LINE('Hello LOOP EXIT');
EXIT;
END LOOP;
END;
/
EXIT koşulda eklenebilir :
LOOP
-- dongu içi
EXIT WHEN Kosul;
END LOOP;
Aşağıda 1'den 10'a kadar sayıları ekrana basan bir örnek görülmektedir :
DECLARE  
    i NUMBER := 1;  
BEGIN  
LOOP  
    EXIT WHEN i>10;
    DBMS_OUTPUT.PUT_LINE(i);  
    i := i+1;
END LOOP;  
END;  
/
While ile Loop kullanıldığı yapı aşağıdaki gibidir :
WHILE Kosul LOOP
-- dongu içi;
END LOOP;
Aşağıda 1'den 10'a kadar sayıları ekrana basan bir örnek görülmektedir :
DECLARE  
    i NUMBER := 1;  
BEGIN  
WHILE i<=10 LOOP  
DBMS_OUTPUT.PUT_LINE(i);  
i := i+1; 
END LOOP;  
END;  
/
For ile Loop kullanıldığı yapı aşağıdaki gibidir :
FOR counter IN ilkdeger..sonuncudeger LOOP
statements;
END LOOP;
Aşağıda 1'den 500'e kadar sayıları ekrana basan bir örnek görülmektedir :
DECLARE
BEGIN
    FOR num IN 1..500 LOOP
        DBMS_OUTPUT.PUT_LINE(num);
    END LOOP;
END;
/
REVERSE ile ters döngü kurulabilir
FOR counter IN REVERSE ilkdeger..sonuncudeger LOOP
statements;
END LOOP;
500 dan 1 e aşağıdaki gibi basılabilir :
DECLARE
BEGIN
    FOR num IN REVERSE 1..500 LOOP
        DBMS_OUTPUT.PUT_LINE(num);
    END LOOP;
END;
/

Loop

Oracle'de döngü yapmak için Loop kullanılır. Genel yapısı aşağıdaki gibidir :
LOOP
-- dongu içi
END LOOP;
En basit loop EXIT ifadesi ile kullanılır :
LOOP
-- dongu içi
EXIT;
END LOOP;
Aşağıdaki örnek tek bir sefer çalışan bir döngüdür :
DECLARE
BEGIN
LOOP
-- dongu içi
    DBMS_OUTPUT.PUT_LINE('Hello LOOP EXIT');
EXIT;
END LOOP;
END;
/
EXIT koşulda eklenebilir :
LOOP
-- dongu içi
EXIT WHEN Kosul;
END LOOP;
Aşağıda 1'den 10'a kadar sayıları ekrana basan bir örnek görülmektedir :
DECLARE  
    i NUMBER := 1;  
BEGIN  
LOOP  
    EXIT WHEN i>10;
    DBMS_OUTPUT.PUT_LINE(i);  
    i := i+1;
END LOOP;  
END;  
/
While ile Loop kullanıldığı yapı aşağıdaki gibidir :
WHILE Kosul LOOP
-- dongu içi;
END LOOP;
Aşağıda 1'den 10'a kadar sayıları ekrana basan bir örnek görülmektedir :
DECLARE  
    i NUMBER := 1;  
BEGIN  
WHILE i<=10 LOOP  
DBMS_OUTPUT.PUT_LINE(i);  
i := i+1; 
END LOOP;  
END;  
/
For ile Loop kullanıldığı yapı aşağıdaki gibidir :
FOR counter IN ilkdeger..sonuncudeger LOOP
statements;
END LOOP;
Aşağıda 1'den 500'e kadar sayıları ekrana basan bir örnek görülmektedir :
DECLARE
BEGIN
    FOR num IN 1..500 LOOP
        DBMS_OUTPUT.PUT_LINE(num);
    END LOOP;
END;
/
REVERSE ile ters döngü kurulabilir
FOR counter IN REVERSE ilkdeger..sonuncudeger LOOP
statements;
END LOOP;
500 dan 1 e aşağıdaki gibi basılabilir :
DECLARE
BEGIN
    FOR num IN REVERSE 1..500 LOOP
        DBMS_OUTPUT.PUT_LINE(num);
    END LOOP;
END;
/

Loop Kontrol İfadeleri

Loop döngüsünde akışı aşağıda kontrollerle değiştirebilirsiniz :
  • EXIT : Döngüyü hemen sonlandırır
  • CONTINUE : Döngüde devamı atlanıp bir sonraki adıma geçilmesini sağlar
  • GOTO : Etiket (label) koyulmuş bir yere atlamayı sağlar

For Loop ile Kayıtların Bilgilerini Basan Örnek

Aşağıda employee tablosundaki tüm kayıtların ad ve soyadını ouput'a basan örnek görülmektedir:
declare
begin
    for e in ( select * from employees )
    loop
        dbms_output.put_line(e.first_name || ' ' || e.last_name);
    end loop;
end;
/




Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir