for o in(select * from TEMPDATA_BIG where c6 is not null)
      loop
          update TEMPDATA_BIG set c6=(SELECT replace(wmsys.wm_concat(describe),',','→') FROM (
                 select describe from lbfundefinition connect by prior fid=id start with name=o.c6 order by id))
          where c6=o.c6;
                 
      end loop;
对于上面的那个代码 是怎么循环的啊oraclefor loop

解决方案 »

  1.   

    简单地说,这个for循环会遍历select * from TEMPDATA_BIG where c6 is not null的结果集。从select 出的第一条记录到最后一条记录,循环次数为select的记录条数。明白了没?
      

  2.   

    虽然for里的变量o不用声明,可事实上,o是 TEMPDATA_BIG%rowtype 类型的。
      

  3.   

    这个是循序的时候都会去update一次吗
      

  4.   

    这个是循序的时候都会去update一次吗对每条循环到的记录,都会执行一次loop块内的语句。