oracle function exception,oracle函数错误

oracle函数错误:

CREATE OR REPLACE FUNCTION CalWorkingDays

(

StartDate in date,

EndDate in date,

TotalDays in integer

)

RETURN integer IS

v_id int;

FreeDays integer;

DaoJiS integer;

BEGIN

if TotalDays <>0 then

v_id:=-1;

dbms_output.put_line('The value of TotalDays must be up to 0');

exit;

end if;

if TotalDays

v_id:=-1;

exit;

end if;

if StartDate>EndDate then

v_id:=-1;

exit;

end if;

select count(*) into FreeDays from V_JIEJIARI where jiejiari between StartDate and EndDate;

DaoJiS := TotalDays - FreeDays;

RETURN DaoJiS;

EXCEPTION

WHEN NO_DATA_FOUND THEN

NULL;

WHEN OTHERS THEN

RAISE;

END CalWorkingDays;

/

PLS-00376: 非法 EXIT 语句;它必须出现在一个循环中

------解决方法--------------------------------------------------------SQL code

Oracle已经提示说了必须存在一个循环中 ...

Consult code below:

LOOP

FETCH c1 INTO c1_rec;

EXIT WHEN c1%NOTFOUND;

IF c1_rec.teamcode = tmpstr1 THEN

retVal := 1;

EXIT;

END IF;

END LOOP;

------解决方法--------------------------------------------------------

提示,先把程序的结构写完整了,然后 在加业务逻辑

------解决方法--------------------------------------------------------

不用这么写 ,直接

return v_id ;代替exit就可以了

exit是用在循环里面的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值