当我想用一个带有两个参数(上限和跳转)的for循环构建一个函数时,该函数正确编译但返回null。
create or replace function f_for_hop(v_limit integer, v_hop integer)
return integer IS
v_score integer;
begin
for i IN 1..v_limit loop
case (i+(v_hop - 1)) mod v_hop
when 0 then
DBMS_OUTPUT.PUT_LINE(i);
else null;
end case;
end loop;
return v_score;
end;
在程序中一切正常
declare
v_limit integer := &limit;
v_hop integer := &hop;
begin
for i IN 1..v_limit loop
case (i+(v_hop - 1)) mod v_hop
when 0 then
DBMS_OUTPUT.PUT_LINE(i);
else null;
end case;
end loop;
end;
答案 0 :(得分:0)
您没有在函数中为v_score赋值,因此它保持为NULL。 然后你返回v_score并且它仍然是NULL;