Ошибка в коде PL / SQL и не может понять ошибку в коде

#oracle #plsql

#Oracle #plsql

Вопрос:

 declare

sum number:=0;

count number:=0;

pnum number:=0;

temp number;

begin

for i in 1..25

loop

    temp:=i;
    count:=0;

    for j in 1..25
    loop

        if mod(i,j)=0 then
            count:=count 1;
        end if;

    end loop;

    if count=2 then
        sum:=sum temp;
        pnum:=pnum 1;
    end if;

    exit when pnum=10;

end loop;

dbms_output.put_line(sum);

end;
  

Ошибка, обнаруженная на сервере Oracle:

ORA-06550: строка 21, столбец 17: PLS-00103: Столкнулся с символом » » при ожидании одного из следующих:

(

ORA-06512: в «SYS.WWV_DBMS_SQL_APEX_180200», строка 548 ORA-06550: строка 28, столбец 25: PLS-00103: Встречается символ «)» при ожидании одного из следующих:

(

Ответ №1:

Вы используете зарезервированные слова SUM и COUNT ; если вы отредактируете имя ваших переменных, ваш код будет работать:

 DECLARE
    vSUM                                     NUMBER := 0;

    vCOUNT                                   NUMBER := 0;

    pnum                                    NUMBER := 0;

    temp                                    NUMBER;
BEGIN
    FOR i IN 1 .. 25
    LOOP
        temp     := i;
        vCOUNT    := 0;

        FOR j IN 1 .. 25
        LOOP
            IF MOD(i, j) = 0
            THEN
                vCOUNT    := vCOUNT   1;
            END IF;
        END LOOP;

        IF vCOUNT = 2
        THEN
            vSUM     := vSUM   temp;
            pnum    := pnum   1;
        END IF;

        EXIT WHEN pnum = 10;
    END LOOP;

    DBMS_OUTPUT.put_line(vSUM);
END;