08 - Advanced Explicit Cursor Concepts
08 - Advanced Explicit Cursor Concepts
Copyright CDAC-ACTS
Objectives
Copyright CDAC-ACTS
Copyright CDAC-ACTS
Copyright CDAC-ACTS
ref_cv ref_type_name;
Example:
DECLARE
TYPE DeptCurTyp IS REF CURSOR RETURN
departments%ROWTYPE;
dept_cv DeptCurTyp;
Copyright CDAC-ACTS
10
11
An Example of Fetching
DECLARE
TYPE EmpCurTyp IS REF CURSOR;
emp_cv EmpCurTyp;
emp_rec emp%ROWTYPE;
sql_stmt VARCHAR2(200);
my_job VARCHAR2(10) := 'SA_REP';
BEGIN
sql_stmt := 'SELECT * FROM emp
WHERE job_id IN (:j,:x)';
OPEN emp_cv FOR sql_stmt USING my_job, 'AD_VP';
LOOP
FETCH emp_cv INTO emp_rec;
EXIT WHEN emp_cv%NOTFOUND;
dbms_output.put_line (emp_rec.job_id ||' '||
emp_rec.employee_id ||' '||emp_rec.last_name);
END LOOP;
CLOSE emp_cv;
END;
/
Copyright CDAC-ACTS
12
Summary
You can return different active sets using
cursors with parameters.
You can define cursors with sub-queries
and correlated sub-queries.
You can manipulate explicit cursors with
commands:
FOR UPDATE Clause
WHERE CURRENT OF Clause
REF Cursors
Copyright CDAC-ACTS
13
Thank You !
Copyright CDAC-ACTS
14