Database Programming with
PL/SQL 5-2: Using Explicit Cursor
Attributes Practice Activities
Vocabulary
Identify the vocabulary word for each definition below:
Declares a record with the same fields as the cursor on
which it is based
A composite data type in PL/SQL, consisting of a number
of fields each with their own name and data type
Returns the status of the cursor
An attribute that processes an exact number of rows or
counts the number of rows fetched in a loop
An attribute used to determine whether the most recent
FETCH statement successfully returned a row
Try It/Solve It
1. In your own words, explain the advantage of using %ROWTYPE to declare a
record structure based on a cursor declaration.
2. Write a PL/SQL block to read through rows in the countries table for all countries in
region 5 (South America region). For each selected country, display the
country_name, national_holiday_date, and national_holiday_name. Use a record
structure to hold all the columns selected from the countries table.
Hint: This exercise is similar to question 4G in the previous lesson. Use your solution as a
starting point for this exercise.
3. For this exercise, you use the employees table. Create a PL/SQL block that fetches
and displays the six employees with the highest salary. For each of these
employees, display the first name, last name, job id, and salary. Order your output
so that the employee with the highest salary is displayed first. Use %ROWTYPE and
the explicit cursor attribute %ROWCOUNT.
Copyright © 2020, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of
their respective owners.
4. Look again at the block you created in question 3. What if you wanted to display 21
employees instead of 6? There are only 20 rows in the employees table. What do you think
would happen?
5. In real life we would not know how many rows the table contained. Modify your block from
question 3 so that it will exit from the loop when either 21 rows have been fetched and
displayed, or when there are no more rows to fetch. Test the block again.
2
Copyright © 2020, Oracle and/or its affiliates. All rights reserved. Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.