PL/SQL Programlama -5

Merhabalar bu yazıda PL/SQL Programlama da akış öperatörleriyle devam ediyoruz, henüz ilk yazılara bakmadıysanız buradan ulaşabilirsiniz.

PL/SQL’de IF-ELSE gibi yapılar birçok programlama dilleriyle benzerdir. En basit şekli ile ifade etmek gerekecek olursak bir şartın istene bir durumda TRUE istenmeyen veya farklı bir sonuç beklenen durumda FALSE değerinin dönmesiyle sonuçlanır.

 

 

 

IF-THEN YAPISI:

Temel olarak koşulun yer aldığı IF-THEN söz dizimi ve sonrasında çalışacak kod bloğu yer alır. IF-THEN yapısı kodun çalışmasından sonra END-IF bloğu ile kapatılır

IF koşul THEN

PL/SQL Kodu;

……..

…….

END IF;

SQL>set serveroutput on;

DECLARE

sayi1 NUMBER:=5;

sayi2 NUMBER:=2;

fark NUMBER;

BEGIN

IF sayi1>sayi2 THEN

fark:=sayi1-sayi2;

END IF;

DBMS_OUPUT.PUT_LINE('SAYI1 = '||sayi1);

DBMS_OUPUT.PUT_LINE('SAYI2 = '||sayi2);

DBMS_OUPUT.PUT_LINE('FARK = '||fark);

END;
/







 

 

 

 

IF-THEN-ELSE:

Bu yapı az öncekine ek olarak ELSE bloğu içermekte. IF-THEN kısmında koşul sağlanmadığında çalışacak olan kodların yer aldığı bloktur. Örnek üzerinden açıklamak en öğretici olacaktır

DECLARE

sayi1 NUMBER:=10;

sayi2 NUMBER:=5;

sonuc NUMBER:

BEGIN

IF sayi1<sayi2 THEN

sonuc:=sayi1+sayi2;

ELSE

sonuc:=sayi1*sayi2;

END IF;

DBMS_OUTPUT.PUT_LINE('Sonuç : '||sonuc);

END;

/

 

 

 

 

 

 

IF-THEN-ELSIF:

Yine az öncekine benzer mantıkta çalışan bir blok yapısı ancak burda tek ELSE yapısı yerine birden fazla olası durum sonuçlanmak istenmesi durumunda kullanılabilecek blok yapısı.

DECLARE

sayi1 NUMBER:=5;

sayi2 NUMBER:=4;

sayi3 NUMBER:=3;

sonuc NUMBER;

BEGIN

IF sayi1<sayi2 THEN

sonuc:=sayi1+sayi2;

ELSEIF sayi2<sayi3 THEN

sonuc:=sayi2+sayi3;

ELSEIF sayi3<sayi2 THEN

sonuc:=sayi3*sayi3;

ELSE

sonuc:=0;

END IF;

DBMS_OUTPUT.PUT_LINE('Sonuç = '||sonuc);

END;

/









Ben örnekleri çok basit şekilde anlatmaya çalıştım ancak IF-THEN vb yapılarda karmaşık sorgular veya DML,DDL işlemleri yapılabilir. Herhangi bir koşul sağlandığında bir tablo UPDATE edilebilir veya sağlanmadığında farklı bir INSERT girilebilir. Bunun gibi örnekleri çoğaltmak mümkün.

Bu yazı’yı burada bırakalım bir sonraki yazı da CASE-WHEN ve nested IF-THEN yapılarına bakıyor olacağız, görüşmek üzere..

Deniz Parlak

I am a technical author on IT Tutorial. I am working on Oracle and Mysql databases, I also work on Datawarehouse and Big Data. If you need help, please contact deniz.parlak@yahoo.com.