Skip to Content
Oracle PL/SQL Programming: A Developer's Workbook
book

Oracle PL/SQL Programming: A Developer's Workbook

by Steven Feuerstein, Andrew Odewahn
May 2000
Intermediate to advanced
594 pages
11h 32m
English
O'Reilly Media, Inc.
Content preview from Oracle PL/SQL Programming: A Developer's Workbook

Chapter 2. Loops

Beginner

Q:

2-1.

There are four kinds of PL/SQL loops:

  1. Simple or infinite loop:

    LOOP
       ...
    END LOOP;
  2. Numeric FOR loop:

    FOR loop_index IN [REVERSE] low_value .. high_value
    LOOP
       ...
    END LOOP;
  3. Cursor FOR loop:

    FOR loop_index IN cursor_name
    LOOP
       ...
    END LOOP;

    or:

    FOR loop_index IN (SELECT ...)
    LOOP
       ...
    END LOOP;
  4. WHILE loop:

    WHILE condition
    LOOP
       ...
    END LOOP;

Q:

2-2.

You can stop the execution of a simple loop in at least three ways:

  1. Issue an EXIT or EXIT WHEN statement:

    LOOP
       lotsa-code
       EXIT WHEN salary_count > 10000;
    END LOOP;
  2. Raise an exception:

    LOOP
       lotsa-code
       RAISE VALUE_ERROR;
    END LOOP;
  3. Use the GOTO command:

    LOOP
       lotsa-code
       GOTO <<outa_here>>
    END LOOP;
    <<outa_here>>
    NULL;

Q:

2-3.

The loop does not contain an EXIT statement. It therefore never stops executing unless an exception is raised, which doesn’t appear likely. It assigns SYSDATE to myDate an infinite number of times.

Q:

2-4.

This loop executes 10 times, unless calc_sales raises an exception for one of the years between 1990 and 1999.

Q:

2-5.

This is an example of a phony loop. It wasn’t needed in the least, and the IF statements were needed only because the loop was used. You can simply write this code to get the job done. (Whether or not they deserve it. That’s not up to you; you just write the code.)

give_bonus (president_id, 2000000);
give_bonus (ceo_id, 5000000);

Q:

2-6.

Each function is run a single time; the low and high values in a numeric FOR loop range are evaluated once, before the loop body is executed even a single time.

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Oracle Database 12c PL/SQL Advanced Programming Techniques

Oracle Database 12c PL/SQL Advanced Programming Techniques

Michael McLaughlin, John Harper

Publisher Resources

ISBN: 9781449324070Errata Page