Elie G.
Elie G.

Reputation: 1723

Select from explicit cursor

Is there a way to select from an explicit cursor without having to use a loop with IF conditions to filter the cursor?

In other words, if I have the following cursor...

CURSOR cur_emp IS
  SELECT * FROM emp;

is there a way to do the following?

DECLARE
  v_row cur_emp%ROWTYPE;
BEGIN
  SELECT * INTO v_row FROM cur_emp WHERE id_emp < 10;
  /* Do something */
END;

Upvotes: 2

Views: 219

Answers (1)

F.Madsen
F.Madsen

Reputation: 702

No but change the cursor instead

CURSOR cur_emp(iEmpid in emp.id_emp%TYPE) IS
  SELECT * FROM emp
   WHERE id_emp < iEmpid;

and

for rEmp in cur_emp(10) loop
  -- do something
end loop;

OR

Skip the cursor and put the hole thing into the for loop, its just as effective.

for rEmp in (SELECT * FROM emp WHERE id_emp < 10) loop
  -- do something
end loop;

Upvotes: 2

Related Questions