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

Intermediate

Q:

21-15.

The steps are:

  1. Open the cursor:

    OPEN_CURSOR
  2. Parse the SQL statement string:

    PARSE
  3. Define the type of each of the columns:

    DEFINE_COLUMN
    DEFINE_COLUMN_LONG
    DEFINE_ARRAY
  4. Bind any variables into placeholders:

    BIND_VARIABLE
    BIND_ARRAY
  5. Execute the cursor:

    EXECUTE
    EXECUTE_AND_FETCH
  6. Fetch a row:

    FETCH_ROWS
  7. Extract the value from a column in the fetched row (after fetch):

    COLUMN_VALUE
    COLUMN_VALUE_LONG
    COLUMN_VALUE_ROWID
    COLUMN_VALUE_RAW
    COLUMN_VALUE_CHAR
  8. Close the cursor:

    CLOSE_CURSOR

Q:

21-16.

When you fetch past the last row with DBMS_SQL.FETCH_ROWS, the PL/SQL runtime engine raises the error:

ORA-01002: fetch out of sequence

To demonstrate this behavior, run the queens.sql script (found on the book’s web page). It creates a table named corporate_welfare_queens and then runs an infinite loop to fetch forever against that table (there might be that many corporations on the dole, but there are only three rows in the table). The result is this output:

McDonald's
General Electric
Boeing
Boeing
DECLARE
*
ERROR at line 1:
ORA-01002: fetch out of sequence

Q:

21-17.

The DBMS_SQL.EXECUTE_AND_FETCH function is comparable to SELECT INTO. It executes the query and then tries to fetch the first row.

Q:

21-18.

It might raise the TOO_MANY_ROWS exception (just as SELECT INTO does), or it might ignore that problem. The behavior of EXECUTE_AND_FETCH in a “TOO MANY ROWS” situation is something you can control. The header for this function is:

FUNCTION DBMS_SQL.EXECUTE_AND_FETCH ( c IN INTEGER ,exact IN BOOLEAN ...
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