我的存储过程执行完毕,但是sqlcode=-1,可是我看数据库中的数据已经按照存储过程的内容顺利执行了,这是为什么?我如何处理?pb调用存储过程如下:
DECLARE wa_init1 PROCEDURE FOR wa_realfee(:llquduanno);
  execute wa_init1;
  IF sqlca.sqlcode = 0 Then
             commit;
           else
            messagebox("dfd",sqlca.sqlerrtext)
            Return 
messagebox("dfd",sqlca.sqlerrtext)
            Return                 End IF
  close wa_init1;
存储过程如下:CREATE   or replace   PROCEDURE wa_realfee
(aiQuduanID in varchar)
AS
lluserid varchar2(10);
llpayprj1  number(10,2);
llpayadd1 number(10,2);
llpayadd2 number(10,2);
llpayadd3 number(10,2);
llprjid  varchar2(10);
llprjid1  varchar2(10);
llprjid2  varchar2(10);
llprjid3  varchar2(10);
llwaterreal varchar2(10);
llpaytotal  number(10,2);
llbaseprice varchar2(10);
cursor w1  is select userid from input_audi where duanno=aiQuduanID;
begin
loop
fetch w1 into lluserid;
exit when w1%notfound;
select prjid1,waterreal
into llprjid,llwaterreal
from input_audi
where userid=lluserid;
select baseprice,prjid1,prjid2,prjid3
into llbaseprice,llprjid1,llprjid2,llprjid3
from tb_price
where id=llprjid;
llpayprj1:=round(nvl(to_number(llbaseprice)*to_number(llwaterreal),0),2);
llpayadd1:=round(nvl(to_number(llprjid1)*to_number(llwaterreal),0),2);
llpayadd2:=round(nvl(to_number(llprjid2)*to_number(llwaterreal),0),2);
llpayadd3:=round(nvl(to_number(llprjid3)*to_number(llwaterreal),0),2);
llpaytotal:=round(nvl(llpayprj1+llpayadd1+llpayadd2+llpayadd3,0),2);
update input_audi
set payprj1=llpayprj1,
 payadd1=llpayadd1,
 payadd2=llpayadd2,
 payadd3=llpayadd3,
 paytotal=llpaytotal
where userid=lluserid;
end loop;
close w1;
end;