实际表中只有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行。。