Intermediate

12-7.

Write a block of code that uses a strong REF CURSOR to retrieve all the rows from the employee table and calls the double_salary program for each employee as shown:

PROCEDURE double_salary (
   id_in IN employee.employee_id%TYPE,
   sal_in IN employee.salary%TYPE);

12-8.

Given the following data element definitions:

CREATE TABLE funny_democracy (
   work_on_election_day DATE,
   only_two_parties NUMBER
   );

DECLARE
   TYPE very_funny_t IS RECORD (
       first_tuesday DATE,
       dems_and_repubs NUMBER := 2);

   TYPE ours_cvt IS REF CURSOR RETURN funny_democracy%ROWTYPE;
   the_finest_cv ours_cvt;

Which of the following record declarations can validly be used to hold a row fetched from the_finest_cv cursor variable?

  1. one_employee funny_democracy%ROWTYPE;

  2. one_employee ours_cvt%ROWTYPE;

  3. one_employee ours_cvt;

  4. one_employee the_finest_cv;

  5. one_employee very_funny_t;

  6. one_employee very_funny_t%ROWTYPE;

  7. one_employee the_finest_cv%ROWTYPE;

12-9.

Which of the following statements correctly identify the differences between strong and weak REF CURSORs?

  1. You can use a weak REF CURSOR to declare cursor variables that can fetch rows from any SQL statement.

  2. A strong REF CURSOR offers stronger performance and should be used whenever possible to improve program efficiency.

  3. Using weak REF CURSORs means you have to deal more often with runtime errors, as opposed to compile-time errors with strong REF CURSORs.

  4. You must close a cursor variable based on a strong REF CURSOR twice because it persists (strongly) past the first close.

  5. A cursor ...

Get Oracle PL/SQL Programming: A Developer's Workbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.