PL/SQL Loops
Basic loop
A loop that executes an unlimited number of times. It encloses a sequence of statements between the keywords LOOP and END LOOP. With each iteration, the sequence of statements is executed, then control resumes at the top of the loop. An EXIT, GOTO, or RAISE statement branches out of the loop. A raised exception also ends the loop. [Via]
Syntax of PL/SQL Basic loop
loop /* statements */ end loop;Example of PL/SQL Basic loop
declare num number := 1; begin loop dbms_output.put_line ('The Number is '||num); num := num +1; if num > 10 Then dbms_output.put_line('Existing the Basic loop.'); exit; end if; end loop; end; /The Number is 1
The Number is 2
The Number is 3
The Number is 4
The Number is 5
The Number is 6
The Number is 7
The Number is 8
The Number is 9
The Number is 10
Exiting the Basic loop.
While loop
The WHILE-LOOP statement associates a Boolean expression with a sequence of statements enclosed by the keywords LOOP and END LOOP. Before each iteration of the loop, the expression is evaluated. If the expression returns TRUE, the sequence of statements is executed, then control resumes at the top of the loop. If the expression returns FALSE or NULL, the loop is bypassed and control passes to the next statement. [Via]
Syntax of PL/SQL While loop
while A > B loop /* statements */ end loopExample of PL/SQL While loop
declare
v_test varchar2(8) := 'RUN';
n_numb number := 2;
begin
while v_test <> 'STOP' loop
if n_numb > 5
then v_test := 'STOP';
end if;
dbms_output.put_line (v_test||': '||n_numb);
n_numb := n_numb + 1;
end loop;
v_test := 'DOWN';
while n_numb > 1 AND v_test = 'DOWN' loop
dbms_output.put_line (v_test||': '||n_numb);
n_numb := n_numb - 1;
end loop;
while 7 = 4 loop
NULL; --never get here
end lop;
end;
/
RUN: 2
RUN: 3
RUN: 4
RUN: 5
STOP: 6
DOWN: 7
DOWN: 6
DOWN: 5
DOWN: 4
DOWN: 3
DOWN: 2
The last loop will never execute because the condition will never be true. The middle loop uses multiple condition tests, using the AND key word. The first loop runs while v_Test does not equal 'STOP'.
[Via: Easy Oracle PL/SQL Programming: Get Started Fast with Working PL/SQL Code By John Garmany]
For loop
Numeric FOR_LOOP loops iterate over a specified range of integers. The range is part of an iteration scheme, which is enclosed by the keywords FOR and LOOP.
The range is evaluated when the FOR loop is first entered and is never re-evaluated. The loop body is executed once for each integer in the range defined by lower_bound..upper_bound. After each iteration, the loop index is incremented.[Via]
Syntax of PL/SQL For Loop
FOR LOOP_COUNTER IN LOWER_LIMIT..UPPER_LIMIT LOOP
STATEMENTS...;
END LOOP;
Example of PL/SQL For Loop
Below PL/SQL For Loop calculates Factorial of 10.
SET SERVEROUTPUT ON DECLARE fact_num NUMBER := 1; BEGIN FOR v_counter IN 1..10 LOOP fact_num := fact_num * v_counter; END LOOP; DBMS_OUTPUT.PUT_LINE ('Factorial of 10 is: '||fact_num); END;Example of PL/SQL Reverse For Loop
Begin For num in Reverse 1..3 Loop DBMS_OUTPUT.PUT_LINE('num = '|| num); END LOOP; END;num = 3
num = 2
num = 1
No comments:
Post a Comment