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

Hi, I'm a Computer Engineering student in Dumlupınar University.I will graduate next year. I did an internship TurkNet Telecominication Company in 2018 June- 2018 September. I had experience Linux/Unix system, SQL Server Management , SSRS, Mysql Database Management,Troubleshooting performance issues in Linux. I also interested Oracle database and technologies. I want to work as Oracle DBA after my University. I am practicing Unix, Exadata, Orace Cloud, Oracle RAC, Dataguard, EBS, Oracle BI and etc and i hope the articles will be helpful. Any questions, or support please write email deniz.parlak@yahoo.com

Leave a Reply

Your email address will not be published. Required fields are marked *