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.