下面的语句有什么地方不爽?

zhengoodman 2004-02-19 12:23:32
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;
编译能通过,查寻时出错.我就纳了闷了.
...全文
38 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧