首页 > 解决方案 > Oracle在循环期间修改游标值

问题描述

以下代码编译并工作:

begin

  for l in (select 1 as v
              from dual
            union
            select 2 as v
              from dual
            union
            select 3 as v
              from dual) loop

              if l.v = 3 then
                l.v := 3.14; -- > modify the cursor value ?!
              end if;

              dbms_output.put_line('=> ' || l.v);

  end loop;

end;

=> 1
=> 2
=> 3.14

在循环中执行此操作是否是一种好习惯,例如修改光标的值?

这样做有什么影响?如果我在游标中声明了select,当我再次读取游标时它会修改值吗?

谢谢

标签: oraclecursor

解决方案


推荐阅读