Home >> FAQs/Tutorials >> Oracle DBA FAQ >> Index

Oracle DBA FAQ - Working with Cursors in PL/SQL

By: FYIcenter.com

Part:   1  2  3  4  5  

(Continued from previous part...)

How To Pass a Cursor Variable to a Procedure?

A cursor variable can be passed into a procedure like a normal variable. The sample script below gives you a good example:

CREATE OR REPLACE PROCEDURE FYI_CENTER AS
  sys_cur SYS_REFCURSOR;
  PROCEDURE emp_print(cur SYS_REFCURSOR) AS
    emp_rec employees%ROWTYPE;
  BEGIN
    LOOP
      FETCH cur INTO emp_rec;
      EXIT WHEN cur%NOTFOUND;
      DBMS_OUTPUT.PUT_LINE('Name = ' || 
        emp_rec.first_name || ' ' || emp_rec.last_name);
    END LOOP;
  END;
BEGIN
  OPEN sys_cur FOR SELECT * FROM employees
    WHERE manager_id = 101;
  emp_print(sys_cur);
  CLOSE sys_cur;
END;
/
Name = Nancy Greenberg
Name = Jennifer Whalen
Name = Susan Mavris
Name = Hermann Baer
Name = Shelley Higgins

Why Cursor Variables Are Easier to Use than Cursors?

Cursor variables are easier to use than cursors because:

  • Cursor variables are easier to define. No need to give a specific query statement.
  • Cursor variables are easier to open. You can specify the query dynamically at the time of open.

  • Cursor variables can be passed into procedures or functions.

Part:   1  2  3  4  5  


Selected Developer Jobs:

More...