Chapter 2. Loops

PL/SQL has four basic looping (or iterative) structures: the simple loop, the FOR loop, the cursor-based FOR loop, and the WHILE loop; these repeatedly execute a block of code. There are three things to worry about when designing a loop:

  • How (or whether) the loop terminates

  • When the test for termination takes place

  • Whether the type of loop is suited to the particular task at hand

If you know the number of times a loop must execute (for example, to process the months in a year), you can be reasonably confident that a FOR loop is the best structure. If you don’t know the number in advance (for example, the number of records in a table), you’re probably better off using a WHILE loop. This chapter tests your ability to make these kinds of decisions.

Beginner

2-1.

What are the different kinds of loops available in PL/SQL?

2-2.

How do you stop a simple loop from continuing?

2-3.

Why is the following form of a simple loop called an infinite loop?

DECLARE
   myDate DATE;
BEGIN
   LOOP
      myDate := SYSDATE;
   END LOOP;
END;

2-4.

How many times does the body of the following loop execute?

FOR year_index IN 1990 .. 1999
LOOP
   calc_sales (year_index);
END LOOP;

2-5.

Rewrite the following loop so that you do not use a loop at all:

FOR i IN 1 .. 2
LOOP
   IF i = 1
   THEN
      give_bonus (president_id, 2000000);

   ELSIF i = 2
   THEN
      give_bonus (ceo_id, 5000000);
   END IF;
END LOOP;

2-6.

How many times are the first_year and last_year functions executed in the following loop?

FOR yearnum IN first_year (company_id => 1056) .. ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.