下面的语句有什么地方不爽?
create or replace function kit_issue_update
(
sp_Job_order_no IN varchar2,
sp_Ws_cd IN varchar2,
sp_Item_no IN varchar2,
sp_Sch_qty IN number,
sp_Kit_issue_qty IN number
) return number
as
wk_Kit_issue_qty kit_issue.kit_issue_qty%type;
begin
select Kit_issue_qty
into wk_Kit_issue_qty
From kit_issue
Where Job_order_no = sp_Job_order_no
and Ws_cd = sp_Ws_cd
and Item_no = sp_Item_no;
if SQL%NOTFOUND then --问题出在这,没数据时没有跳进来.而是直接报错
begin
insert into kit_issue
values( sp_Job_order_no,
sp_Ws_cd,
sp_Item_no,
sp_Sch_qty,
sp_Kit_issue_qty
)
;
return SQLCODE;
exception
when NO_DATA_FOUND then
return -1403;
when others then
return SQLCODE;
end;
Else
begin
Update kit_issue
set Job_order_no = sp_Job_order_no,
Ws_cd = sp_Ws_cd,
Item_no = sp_Item_no,
Sch_qty = sp_Sch_qty,
Kit_issue_qty = sp_Kit_issue_qty
Where Job_order_no = sp_Job_order_no
and Ws_cd = sp_Ws_cd
and Item_no = sp_Item_no
;
if SQL%NOTFOUND then
return 100 ;
end if ;
return 0 ;
exception
when NO_DATA_FOUND then
return -1403 ;
when others then
return SQLCODE ;
end;
End If;
return SQLCODE;
end;
编译能通过,查寻时出错.我就纳了闷了.