Skip to Content
Oracle PL/SQL Best Practices
book

Oracle PL/SQL Best Practices

by Steven Feuerstein
April 2001
Intermediate to advanced
204 pages
5h 10m
English
O'Reilly Media, Inc.
Content preview from Oracle PL/SQL Best Practices

Name

STYL-06: Self-document using block and loop labels.

Synopsis

While PL/SQL labels (identifiers within double angle brackets, such as <<yearly_analysis>>) are most often associated with GOTOs and are therefore disdained, they can be a big help in improving the readability of code.

Use a label directly in front of loops and nested anonymous blocks:

  • To name that portion of code and thereby self-document what it’s doing

  • So you can repeat that name with the END statement of that block or loop

This recommendation is especially important when you have multiple nestings of loops (and possibly inconsistent indentation), as in the following:

LOOP
   <body>
   WHILE <condition>
   LOOP
      <while body>
   END LOOP;
END LOOP;

Example

I use labels for a block and two nested loops, and then apply them in the appropriate END statements. I can now easily see which loop and block is ending, no matter how badly my code is indented!

CREATE OR REPLACE PROCEDURE display_book_usage
IS
BEGIN
   <<best_seller_review>>
   DECLARE
      CURSOR yearly_analysis_cur IS SELECT ...;
      CURSOR monthly_analysis_cur IS SELECT ...;
   BEGIN
      <<yearly_analysis>>
      FOR book_rec IN yearly_analysis_cur (2000)
      LOOP
         <<monthly_analysis>>
         FOR month_rec IN
             monthly_analysis_cur (
                yearly_analysis_cur%rowcount)
         LOOP
            ... lots of month-related code ...
         END LOOP monthly_analysis;
         ... lots of year-related code ...
      END LOOP yearly_analysis;
   END best_seller_review;
END display_book_usage;

Benefits

If you use labels, it’s much easier to read your code, especially if it ...

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 PL/SQL for DBAs

Oracle PL/SQL for DBAs

Arup Nanda, Steven Feuerstein
Resilient Oracle PL/SQL

Resilient Oracle PL/SQL

Stephen B. Morris

Publisher Resources

ISBN: 0596001215Errata Page