Why are there three different kinds of loops? To provide you with the flexibility you need to write the most straightforward code to handle any particular situation. Most situations that require a loop could be written with any of the three loop constructs. If you do not pick the construct that is best suited for that particular requirement, however, you could end up having to write many additional lines of code The resulting module would also be harder to understand and maintain.
To give you a feeling for the way the different loops solve their problems in different ways, consider the following three procedures. In each case, the procedure makes a call to display_total_sales for a particular year, for each year number between the start and end argument values.
It’s called simple for a reason: it starts simply with the LOOP keyword and ends with the END LOOP statement. The loop will terminate if you execute an EXIT, EXIT WHEN, or RETURN within the body of the loop (or if an exception is raised):
/* File on web: loop_examples.sql PROCEDURE display_multiple_years ( start_year_in IN PLS_INTEGER ,end_year_in IN PLS_INTEGER ) IS l_current_year PLS_INTEGER := start_year_in; BEGIN LOOP EXIT WHEN l_current_year > end_year_in; display_total_sales (l_current_year); l_current_year := l_current_year + 1; END LOOP; END display_multiple_years;
Oracle offers a numeric and cursor FOR loop. With the numeric FOR loop, you specify the start ...