PL/SQL Koşullu İfadeler

Oracle PL/SQL içerisinde koşula göre çeşitli komutların çalıştırılması için kullanılan if, else, elsif, case, case when kullanımı ile ilgili bilgiler yer alıyor.

Koşullu ifadeler

Belirli bir koşula-şarta göre komut çalıştırmayı sağlayan yapı koşullu ifadeler olarak adlandırılır.

Koşullu ifadeler içerisinde yer alan koşul Oracle PL/SQL içerisinde yer alan operatörlerden yararlanılarak oluşturulur.

IF

Belirlenen koşul doğruysa blok içerisinde komutlar çalışır.

IF KOŞUL THEN
    -- KOMUTLAR
END IF;

Örnek IF kullanım aşağıdaki gibidir.

SET SERVEROUTPUT ON;
BEGIN
    IF TRUE THEN
        DBMS_OUTPUT.put_line('Merhaba ben Yusuf SEZER');
    END IF;
END;

ELSE

IF ile belirlenen koşul doğru değilse çalıştırılacak komutları içerir.

IF KOŞUL THEN
    -- KOMUTLAR-1
ELSE
    -- KOMUTLAR-2
END IF;

Örnek else kullanımı aşağıdaki gibidir.

SET SERVEROUTPUT ON;
BEGIN
    IF FALSE THEN
        DBMS_OUTPUT.put_line('Merhaba ben Yusuf SEZER');
    ELSE
        DBMS_OUTPUT.put_line('Burada başka komutlar yer alabilir.');
    END IF;
END;

ELSIF

Birden fazla koşul belirtmek için kullanılır.

IF KOŞUL THEN
    -- KOMUTLAR-1
ELSIF KOŞUL-2 THEN
    -- KOMUTLAR-2
ELSIF KOŞUL-3 THEN
    -- KOMUTLAR-3
ELSIF KOŞUL-4 THEN
    -- KOMUTLAR-4
ELSE
    -- KOMUTLAR-5
END IF;

Örnek elsif kullanımı aşağıdaki gibidir.

SET SERVEROUTPUT ON;
DECLARE
  v_sayi PLS_INTEGER := 7;
BEGIN
    IF v_sayi = 0 THEN
        DBMS_OUTPUT.put_line('SIFIR');
    ELSIF v_sayi = 1 THEN
        DBMS_OUTPUT.put_line('BİR');
    ELSIF v_sayi = 2 THEN
        DBMS_OUTPUT.put_line('İKİ');
    ELSIF v_sayi = 3 THEN
        DBMS_OUTPUT.put_line('ÜÇ');
    ELSIF v_sayi = 4 THEN
        DBMS_OUTPUT.put_line('DÖRT');
    ELSE
        DBMS_OUTPUT.put_line('Bilinmeyen bir değer.');
    END IF;
END;

CASE

IF VE ELSIF bir değer için birden fazla operatör kullanımına neden olur.

CASE anahtar kelimesi tek bir değer sonucunu kontrol etmek için kullanılır.

CASE v_degisken
    WHEN 'değer-1' THEN
        -- KOMUTLAR-1
    WHEN 'değer-2' THEN
        -- KOMUTLAR-2
    ELSE
        -- KOMUTLAR-3
END CASE;

Örnek case kullanım aşağıdaki gibidir.

SET SERVEROUTPUT ON;
DECLARE
  v_sayi PLS_INTEGER := 7;
BEGIN
    CASE v_sayi
    WHEN 0 THEN
        DBMS_OUTPUT.put_line('SIFIR');
    WHEN 1 THEN
        DBMS_OUTPUT.put_line('BİR');
    WHEN 2 THEN
        DBMS_OUTPUT.put_line('İKİ');
    WHEN 3 THEN
        DBMS_OUTPUT.put_line('ÜÇ');
    WHEN 4 THEN
        DBMS_OUTPUT.put_line('DÖRT');
    ELSE
        DBMS_OUTPUT.put_line('Bilinmeyen bir değer.');
    END CASE;
END;

Bir önceki ELSIF örneği ile karşılaştırıldığında daha az operatör kullanıldığı görünecektir.

CASE yapısın ayrıca operatörler ile birlikte kullanılabilir.

CASE 
    WHEN KOŞUL THEN
        -- KOMUTLAR-1
    WHEN KOŞUL-2 THEN
        -- KOMUTLAR-2
    WHEN KOŞUL-3 THEN
        -- KOMUTLAR-3
    ELSE
        -- KOMUTLAR-4
END CASE;

Örnek case kullanım aşağıdaki gibidir.

SET SERVEROUTPUT ON;
DECLARE
  v_sayi PLS_INTEGER := 3;
BEGIN
    CASE
    WHEN v_sayi = 0 THEN
        DBMS_OUTPUT.put_line('SIFIR');
    WHEN v_sayi = 1 THEN
        DBMS_OUTPUT.put_line('BİR');
    WHEN v_sayi = 2 THEN
        DBMS_OUTPUT.put_line('İKİ');
    WHEN v_sayi = 3 THEN
        DBMS_OUTPUT.put_line('ÜÇ');
    WHEN v_sayi = 4 THEN
        DBMS_OUTPUT.put_line('DÖRT');
    ELSE
        DBMS_OUTPUT.put_line('Bilinmeyen bir değer.');
    END CASE;
END;

Koşullu ifadeler ayrıca iç-içe, döngüler içerisinde de kullanılabilir.

PL/SQL Derslerine buradan ulaşabilirsiniz.

Hayırlı günler dilerim.

Yusuf SEZER

Yusuf SEZER

Computer Engineer who interested about web technologies, algorithms, artificial intelligence and embedded systems; constantly exploring new technologies.


Bunlara'da bakmalısın!