Database Programming with PL/SQL

4-5: Iterative Control: Nested Loops

Practice Activities

Try It / Solve It

1. Write a PL/SQL block to produce a list of available vehicle license plate numbers. These numbers
must be in the following format: NN-MMM, where NN is between 60 and 65, and MMM is between
100 and 110. Use nested FOR loops. The outer loop should choose numbers between 60 and 65.
The inner loop should choose numbers between 100 and 110, and concatenate the two numbers
together.

DECLARE
 v_num1 NUMBER(2);
 v_num2 NUMBER(3);
BEGIN
 FOR v_num1 in 60..65 LOOP
  FOR v_num2 in 100..110 LOOP
   DBMS_OUTPUT.PUT_LINE(v_num1 || '-' || v_num2);
  END LOOP;
 END LOOP;
END;
2. Modify your block from question 1 to calculate the sum of the two numbers on each iteration of the
inner loop (for example, 62-107 sums to 169), and exit from the OUTER loop if the sum of the two
numbers is greater than 172. Use loop labels. Test your modified code.

DECLARE
 v_num1 NUMBER(2);
 v_num2 NUMBER(3);
BEGIN
 <<outerloop>>
 FOR v_num1 in 60..65 LOOP
  <<innerloop>>
  FOR v_num2 in 100..110 LOOP
   DBMS_OUTPUT.PUT_LINE(v_num1 + v_num2);
   EXIT WHEN v_num1 + v_num2 > 172;
  END LOOP;
 END LOOP;
END;