【发布时间】:2015-04-22 09:03:08
【问题描述】:
可以从 oracle 函数返回 null 吗?
我有以下oracle函数:
create or replace function vta.GetAmount(p_month NUMBER)
return number is
v_amount number(9);
begin
select amount
into v_amount
from salary
where salary.month = p_month;
return v_amount;
end GetAmount;
当 select 语句返回零行时,它会引发以下异常:
ora-01403: no data found.
在这种情况下,我希望函数返回 null。
【问题讨论】:
-
您的 select 语句返回超过 1 行代码失败,而不是因为它返回 0 行。如果它会返回 0 行,则返回 null。
-
不,如果它返回了 0 行,那么你会得到 no_data_found 异常。
-
尝试运行这个,从salary.month =
中选择金额:并查看结果; -
@Rene 现在帖子没问题,否则前面的错误指向我在最初评论中所说的内容
-
抱歉,在 PL/SQL Developer 中重新测试后,抛出了
ORA-01403: no data found异常。我已经更正了我的问题。
标签: oracle function plsqldeveloper