|
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
|