Thursday, 5 January 2017

PL/SQL IF THEN ELSE Statements | Conditional Control







PL/SQL IF THEN ELSE conditional control statements. PL/SQL Conditional Control two type: IF THEN ELSE statement and CASE statement,
PL/SQL IF statement check condition and transfer the execution flow on that matched block depending on a condition. IF statement execute or skip a sequence of one or more statements. PL/SQL IF statement four different type,

  1. IF THEN Statement
  2. IF THEN ELSE Statement
  3. IF THEN ELSIF Statement
  4. Nested IF THEN ELSE Statement                       

IF THEN Statement

IF THEN Statement write in following syntax format:
IF ( condition ) THEN
 statement
END IF;

Example

We declare one number with initialize 14 value is equal of condition value, Comparing 2 values by using IF THEN statement,
DECLARE
   no INTEGER(2) := 14;
BEGIN
   IF ( no = 14 ) THEN
      DBMS_OUTPUT.PUT_LINE('condition true');   
   END IF;
END;
/






Result

condition true

PL/SQL procedure successfully completed.

IF THEN ELSE Statement

IF THEN ELSE Statement write in following syntax format:
IF ( condition ) THEN
 statement;
ELSE
 statement; 
END IF;

Example

Same as above example if condition not true then else part will execute.
DECLARE
   no INTEGER(2) := 14;
BEGIN
   IF ( no = 11 ) THEN
      DBMS_OUTPUT.PUT_LINE(no || ' is same');   
   ELSE
      DBMS_OUTPUT.PUT_LINE(no || ' is not same');
   END IF;
END;
/

Result

14 is not same

PL/SQL procedure successfully completed.

IF THEN ELSIF Statement

IF THEN ELSIF Statement write in following syntax format:
IF ( condition-1 ) THEN
 statement-1;
ELSIF ( condition-2 ) THEN
 statement-2;
ELSIF ( condition-3 ) THEN
 statement-3; 
ELSE
 statement;
END IF;
Above syntax same as below syntax both are logically same
IF ( condition-1 ) THEN
 statement-1;
ELSE
 IF ( condition-2 ) THEN
  statement-2;
 ELSE
     IF ( condition-3 ) THEN
        statements-3;
     END IF;
    END IF;
END IF;

Example

Here one student result example for archiving grade.
DECLARE
   result CHAR(20) := 'second';
BEGIN
   IF ( result = 'distinction' ) THEN
      DBMS_OUTPUT.PUT_LINE('First Class with Distinction');   
   ELSIF ( result = 'first' ) THEN
      DBMS_OUTPUT.PUT_LINE('First Class');  
   ELSIF ( result = 'second' ) THEN
      DBMS_OUTPUT.PUT_LINE('Second Class');  
   ELSIF ( result = 'third' ) THEN
      DBMS_OUTPUT.PUT_LINE('Third Class');        
   ELSE
      DBMS_OUTPUT.PUT_LINE('Fail');
   END IF;
END;
/

Result

Second Class

PL/SQL procedure successfully completed.

Nested IF THEN ELSE Statement

Logically IF THEN ELSIF Statement and Nested IF THEN ELSE Statement both are same. Nested IF THEN ELSE Statement write in following syntax format:
IF ( condition-1 ) THEN
 statement-1;
ELSE
 IF ( condition-2 ) THEN
  statement-2;
 ELSE
     IF ( condition-3 ) THEN
        statements-3;
     END IF;
    END IF;
END IF;

Example

Here check condition students gender male, if not male then finding the result using nested IF THEN ELSE statement.
DECLARE
 gender CHAR(20) := 'female';
    result CHAR(20) := 'second';
BEGIN
   IF ( gender = 'male' ) THEN
      DBMS_OUTPUT.PUT_LINE('Gender Male Record Skip!');  
   ELSE 
    IF ( result = 'distinction' ) THEN
       DBMS_OUTPUT.PUT_LINE('First Class with Distinction');   
    ELSIF ( result = 'first' ) THEN
       DBMS_OUTPUT.PUT_LINE('First Class');  
    ELSIF ( result = 'second' ) THEN
       DBMS_OUTPUT.PUT_LINE('Second Class');  
    ELSIF ( result = 'third' ) THEN
       DBMS_OUTPUT.PUT_LINE('Third Class');        
    ELSE
       DBMS_OUTPUT.PUT_LINE('Fail');
    END IF;
 END IF;
END;
/

Result

Second Class

PL/SQL procedure successfully completed.
Once if condition find TRUE then execute that true block and skip other block that block never execute.











    Choose :
  • OR
  • To comment
No comments:
Write comments