从显式光标中选择

时间:2019-03-12 14:33:31

标签: oracle plsql oracle12c

有没有一种方法可以从显式游标中进行选择,而不必使用带有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 个答案:

答案 0 :(得分:2)

否,而是改为更改光标

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;

OR

跳过光标,然后将小洞内容放入for循环中,同样有效。

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