当前位置: 代码迷 >> Oracle面试 >> 有关循环读取数据表中的值有关问题。游标的使用
  详细解决方案

有关循环读取数据表中的值有关问题。游标的使用

热度:287   发布时间:2016-04-24 03:22:33.0
有关循环读取数据表中的值问题。游标的使用
实际表中只有2行记录。
但是用下面的写法。最后拼接出来的记录有6条记录。
不知道怎么回事


declare
    cursor cur_saleinfo is
  select  s.cardno, s.damt, s.tranid, s.chargedate, v.chargeid from wscrm_sale_online s, viclist v where s.billno = as_billno and s.tranid = v.tranid
     ;
     begin
      open cur_saleinfo;
      loop
       fetch cur_saleinfo into ls_cardNo,ls_amt,ls_tranid,ls_chargedate,ls_chargeId;
        ls_rsp:=ls_cardNo||','||ls_amt||','||ls_tranid||','||ls_chargeId||','||ls_chargedate||'|';
         as_rsp:=as_rsp||ls_rsp;
          EXIT WHEN cur_saleinfo%NOTFOUND;
            end loop;
              as_rsp:=as_num||'|'||as_rsp;
         close cur_saleinfo;
       end;




------解决方案--------------------
两个问题,首先在数据库中把游标中的sql执行一下,看看结果是不是为2条。。
另外,一般在循环过程中
fetch into完成后接exit判断,也就是把你的第11行代码写在第9行。。
  相关解决方案