Выбрать из явного курсора - PullRequest
0 голосов
/ 12 марта 2019

Есть ли способ выбрать из явного курсора без необходимости использовать цикл с условиями IF для фильтрации курсора?

Другими словами, если у меня есть следующий курсор ...

CURSOR cur_emp IS
  SELECT * FROM emp;

есть ли способ сделать следующее?

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

1 Ответ

2 голосов
/ 12 марта 2019

Нет, но вместо этого измените курсор

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

и

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

ИЛИ

Пропустите курсор и поместите дырочку в цикл for, это так же эффективно.

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