我的存储过程执行完毕,但是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;
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;
update input_audi
set payprj1=llpayprj1,
payadd1=llpayadd1,
payadd2=llpayadd2,
payadd3=llpayadd3,
paytotal=llpaytotal
where userid=lluserid;COMMIT;end loop;