我写了这个,我的老师说“退出”有问题,但我不明白为什么

时间:2019-03-25 10:39:27

标签: oracle plsql

这是代码,正如我所说的,他说退出存在问题。

DECLARE
    a number:=1;
    b number:=6;
    exit BOOLEAN;
    BEGIN
        exit:='FALSE'; 
        WHILE NOT exit LOOP
            IF a>=b THEN
                exit:='TRUE';
            ELSE
                a:=(a+1);
            END IF;
        END LOOP;
END;

1 个答案:

答案 0 :(得分:4)

exit是一个语句,因此您不应将其用作变量-它是reserved word。仅语句本身将退出循环:

 DECLARE
    a number:=1;
    b number:=6;
 BEGIN
    LOOP
        IF a>=b THEN
            EXIT;
        ELSE
            a:=a+1;
        END IF;
    END LOOP;
 END;

您还可以将EXITWHEN子句组合在一起:

 DECLARE
    a number:=1;
    b number:=6;
 BEGIN
    LOOP
        EXIT WHEN a>=b;
        a:=a+1;
    END LOOP;
 END;

或者您可以将逆条件作为WHILE子句添加到LOOP构造中:

 DECLARE
    a number:=1;
    b number:=6;
 BEGIN
    WHILE a < b LOOP
        a:=a+1;
    END LOOP;
 END;