改用
for aaa in  csr_ldm LOOPif(aaa.FIELDNAME='尾数') then begin
 
 XP_LOGICNAME(srcId,destId,serviceID,'3','6','开始1','test1',pid);
insert into TB_HD(SrcTermID,DestTermID,msgContent,receiveTime,OpertionID,TacheName,UnitName,zid)
 values(srcId,destId,msg,receiveTime,operationId,taskName,v_unitename,pid);
                             end;
      end if;end loop;

解决方案 »

  1.   

    游标使用语法上没有问题啊。v_FIELDNAME变量长度够吗,最好用%type定义?FIELDNAME是否在SYS_WFS_UNITS, SYS_WFS_LINKS 这两个表中都存在?如果是需要加上别名。要看具体的错误提示。
      

  2.   

    还有,end if 前多了一个end;
      

  3.   

    另外,效率上有问题。if(v_FIELDNAME='尾数') then begin这句话为啥不作为条件放到游标的定义中,这样要处理的游标记录数就少多了,且不用if来判断了。