oracle中的make函数

oracle中的make函数,oracle,function,Oracle,Function,如果我有这个密码 CREATE OR REPLACE FUNCTION checkprima (K NUMBER) RETURN NUMBER IS I NUMBER; hasil NUMBER; output NUMBER; BEGIN DBMS_OUTPUT.PUT('2 '); FOR I IN 2..K LOOP IF MOD(I,2)>0 THEN IF I > 7 THEN IF MOD(I,3)>0 AND MO

如果我有这个密码

CREATE OR REPLACE FUNCTION checkprima (K NUMBER) 
RETURN NUMBER
IS
I NUMBER;
hasil NUMBER;
output NUMBER;
BEGIN
DBMS_OUTPUT.PUT('2 ');
FOR I IN 2..K 
LOOP
    IF MOD(I,2)>0 THEN
        IF I > 7 THEN
            IF MOD(I,3)>0 AND MOD(I,5)>0 AND MOD(I,7)>0 THEN
                hasil:=DBMS_OUTPUT.PUT(TO_CHAR(I) || ' ');
        END IF;
        ELSE
            hasil:=DBMS_OUTPUT.PUT(TO_CHAR(I) || ' ');
        END IF;
    END IF;
END LOOP;
output:=hasil;
RETURN output;
END checkprima;
/
范例 如果我输入,选择checkprima('20')

我希望输出是这样的

235711171719

CREATE OR REPLACE PROCEDURE tes (K IN NUMBER) IS
BEGIN
DBMS_OUTPUT.PUT('2 ');
FOR I IN 2..K LOOP
    IF MOD(I,2)>0 THEN
        IF I > 7 THEN
            IF MOD(I,3)>0 AND MOD(I,5)>0 AND MOD(I,7)>0 THEN
                DBMS_OUTPUT.PUT(TO_CHAR(I) || ' ');
            END IF;
        ELSE
            DBMS_OUTPUT.PUT(TO_CHAR(I) || ' ');
        END IF;
    END IF;
END LOOP;
DBMS_OUTPUT.NEW_LINE;
END tes;

调用过程-->
exec tes(20)

在这种情况下,参数K应作为参数传递给过程?@drgPP yes。例子。执行董事(“20”);错误。预期出现以下情况之一时遇到符号循环if@newbie如果需要,则添加结束;before ELSE.success,但输出未输出。@新手如果您使用的是SQLPlus,则执行的keywork为execute。exec过程为success。但产出还没有出来。