PL/SQL IF statement

In PL/SQL, the IF statement is part of control structures and is used for conditional execution of code blocks. It allows you to control the flow of your program by executing certain statements based on whether a specified condition evaluates to true or false. If the condition is false, the program moves to the next ELSIF or ELSE statement, or continues with the following code if there are no more conditions.

Syntax

The basic syntax of the IF statement in PL/SQL is as follows:

IF condition THEN
   -- Statements to be executed if the condition is true
ELSIF condition THEN
   -- Statements to be executed if another condition is true
ELSE
   -- Statements to be executed if none of the above conditions are true
END IF;

Here’s a breakdown of the components:

IF: The keyword that begins the conditional block.
condition: The expression that is evaluated. If it is true, the statements inside the IF block are executed.
THEN: The keyword that separates the condition from the statements to be executed if the condition is true.
ELSIF: Optional keyword used to check additional conditions if the previous IF condition is false.
ELSE: Optional keyword used to define a block of statements to be executed if none of the previous conditions are true.
END IF: The end of the IF statement block.

Example

Here’s an example illustrating the usage of the IF statement in PL/SQL:

DECLARE
   x NUMBER := 10;
BEGIN
   IF x > 0 THEN
      DBMS_OUTPUT.PUT_LINE('x is positive');
   ELSIF x < 0 THEN
      DBMS_OUTPUT.PUT_LINE('x is negative');
   ELSE
      DBMS_OUTPUT.PUT_LINE('x is zero');
   END IF;
END;

In this example, the program checks the value of the variable x. If x is greater than 0, it prints "x is positive". If x is less than 0, it prints "x is negative". If neither condition is true (i.e., x is 0), it prints "x is zero".

The IF statement is fundamental control structure for writing logic that allows PL/SQL programs to make decisions based on specific conditions, enabling more flexible and dynamic program execution.