PL/SQL User's Guide and Reference Release 2 (9.2) Part Number A96624-01 |
|
PL/SQL Language Elements, 25 of 52
The IF
statement lets you execute a sequence of statements conditionally. Whether the sequence is executed or not depends on the value of a Boolean expression. For more information, see "Conditional Control: IF and CASE Statements".
This is an expression that yields the Boolean value TRUE
, FALSE
, or NULL
. It is associated with a sequence of statements, which is executed only if the expression yields TRUE
.
If control reaches this keyword, the sequence of statements that follows it is executed.
This keyword introduces a Boolean expression to be evaluated if the expression following IF
and all the expressions following any preceding ELSIF
s yield FALSE
or NULL
.
This keyword associates the Boolean expression that precedes it with the sequence of statements that follows it. If the expression yields TRUE
, the associated sequence of statements is executed.
There are three forms of IF
statements: IF-THEN
, IF-THEN-ELSE
, and IF-THEN-ELSIF
. The simplest form of IF
statement associates a Boolean expression with a sequence of statements enclosed by the keywords THEN
and END
IF
. The sequence of statements is executed only if the expression yields TRUE
. If the expression yields FALSE
or NULL
, the IF
statement does nothing. In either case, control passes to the next statement.
The second form of IF
statement adds the keyword ELSE
followed by an alternative sequence of statements. The sequence of statements in the ELSE
clause is executed only if the Boolean expression yields FALSE
or NULL
. Thus, the ELSE
clause ensures that a sequence of statements is executed.
The third form of IF
statement uses the keyword ELSIF
to introduce additional Boolean expressions. If the first expression yields FALSE
or NULL
, the ELSIF
clause evaluates another expression. An IF
statement can have any number of ELSIF
clauses; the final ELSE
clause is optional. Boolean expressions are evaluated one by one from top to bottom. If any expression yields TRUE
, its associated sequence of statements is executed and control passes to the next statement. If all expressions yield FALSE
or NULL
, the sequence in the ELSE
clause is executed.
An IF
statement never executes more than one sequence of statements because processing is complete after any sequence of statements is executed. However, the THEN
and ELSE
clauses can include more IF
statements. That is, IF
statements can be nested.
In the example below, if shoe_count
has a value of 10, both the first and second Boolean expressions yield TRUE
. Nevertheless, order_quantity
is assigned the proper value of 50 because processing of an IF
statement stops after an expression yields TRUE
and its associated sequence of statements is executed. The expression associated with ELSIF
is never evaluated and control passes to the INSERT
statement.
IF shoe_count < 20 THEN order_quantity := 50; ELSIF shoe_count < 30 THEN order_quantity := 20; ELSE order_quantity := 10; END IF; INSERT INTO purchase_order VALUES (shoe_type, order_quantity);
In the following example, depending on the value of score
, one of two status messages is inserted into the grades
table:
IF score < 70 THEN fail := fail + 1; INSERT INTO grades VALUES (student_id, 'Failed'); ELSE pass := pass + 1; INSERT INTO grades VALUES (student_id, 'Passed'); END IF;
|
Copyright © 1996, 2002 Oracle Corporation. All Rights Reserved. |
|