DECLARE
COUNT NUMBER;
prime NUMBER;
SUM NUMBER;
i NUMBER;
j NUMBER;
BEGIN
SUM := 2;
COUNT := 0;
prime := 1;
i := 3;
WHILE COUNT < 10
LOOP
j := i / 2;
FOR k IN 2 .. j
LOOP
IF i MOD j = 0
THEN
prime := 0;
END IF;
IF prime = 1
THEN
SUM := SUM + i;
COUNT := COUNT + 1;
END IF;
END LOOP;
i := i + 1;
END LOOP;
DBMS_OUTPUT.put_line (SUM);
END;
/
我正在尝试计算前10个素数之和。我写了上面的代码,但是当我尝试执行它时,它抛出一个错误:
ORA-06550:第29行,第12列:
PLS-00103:遇到符号 预期以下情况之一时为“ +”:(此错误对应 到我要增加总和值的那一行。
答案 0 :(得分:2)
COUNT
和SUM
是保留关键字,不能选择为变量名。
添加前缀“ v”:
DECLARE
vCOUNT NUMBER;
prime NUMBER;
vSUM NUMBER;
i NUMBER;
j NUMBER;
BEGIN
vSUM := 2;
vCOUNT := 0;
prime := 1;
i := 3;
WHILE vCOUNT < 10
LOOP
j := i / 2;
FOR k IN 2 .. j
LOOP
IF i MOD j = 0
THEN
prime := 0;
END IF;
IF prime = 1
THEN
vSUM := vSUM + i;
vCOUNT := vCOUNT + 1;
END IF;
END LOOP;
i := i + 1;
END LOOP;
DBMS_OUTPUT.put_line (vSUM);
END;
/
这是一篇有关plsql中的命名约定的好文章: https://www.guru99.com/pl-sql-identifiers.html
错误消息“期望'('”表明您的数据库需要类似“ SUM(someValue)”的信息。 一个例子就是这样:
SELECT SUM(col1) FROM mytable