我有一个Oracle函数,它具有以下结构
Function TEST_FUNC(o_err_msg varchar2)
return BOOLEAN
is
begin
for C in 1..10
loop
begin
insert into test
values(c);
return true;
exception
when no_data_found
null;
return true;
when others then
---Some Code
return false;
end;
end loop;
end;
当我运行这个时,我得到ORA-06503:PL / SQL:返回没有值的函数。如何确保当内部BLOCK返回TRUE时函数RETURN TRUE,当返回FALSE时返回FALSE。
请帮忙。
答案 0 :(得分:2)
这里的问题是你没有得到任何异常 - 所以LOOP成功执行但在LOOP完成后没有返回语句。你需要添加一个:
Function test_func(o_err_msg varchar2) return boolean is
begin
for c in 1..10 loop
begin
insert into test
values(c);
exception
when no_data_found
return true;
when others then
---Some Code
return false;
end;
end loop;
return True;
end test_func;
其他问题: