使用jump参数和limit参数循环

时间:2017-11-22 19:58:35

标签: oracle plsql

当我想用一个带有两个参数(上限和跳转)的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;

1 个答案:

答案 0 :(得分:0)

您没有在函数中为v_score赋值,因此它保持为NULL。 然后你返回v_score并且它仍然是NULL;