Oracle “遇到错误”';(';expected";尝试执行for循环以查找前十个数字的和';

Oracle “遇到错误”';(';expected";尝试执行for循环以查找前十个数字的和';,oracle,plsql,Oracle,Plsql,我正在尝试用PL SQL编写一个简单的for循环程序,以查找从1到10的前十个数字的总和 早些时候,我在declare中初始化了变量。但是,当我遇到错误时,我在declare部分中声明了它,并在begin部分中初始化了它,希望这可能就是问题所在。 然而,我仍然得到了错误 SQL> declare 2 sum integer; 3 begin 4 sum := 0; 5 for k in 1..10 6 loop 7 dbms_output.put_lin

我正在尝试用PL SQL编写一个简单的for循环程序,以查找从1到10的前十个数字的总和

早些时候,我在declare中初始化了变量。但是,当我遇到错误时,我在declare部分中声明了它,并在begin部分中初始化了它,希望这可能就是问题所在。 然而,我仍然得到了错误

SQL> declare
  2  sum integer;
  3  begin
  4  sum := 0;
  5  for k in 1..10
  6  loop
  7  dbms_output.put_line(sum+k);
  8  end loop;
  9  end;
 10  /



dbms_output.put_line(sum+k);
                        *
ERROR at line 7:
ORA-06550: line 7, column 25:
PLS-00103: Encountered the symbol "+" when expecting one of the following:
(

当您使用oracle保留字(如sum)时,请不要这样做,但如果您确实使用它们,请在双引号内使用它们,如下所示:

declare
    "sum" integer;
    begin
    "sum" := 0;
    for k in 1..10
    loop
    dbms_output.put_line("sum"+k);
    end loop;
end;
这样就可以了。
希望这有帮助!

当您使用oracle保留字(如sum)时,请不要使用,但如果您确实使用它们,请在双引号内使用它们,如下所示:

declare
    "sum" integer;
    begin
    "sum" := 0;
    for k in 1..10
    loop
    dbms_output.put_line("sum"+k);
    end loop;
end;
这样就可以了。
希望这有帮助!

sum是保留关键字,请尝试使用其他变量@ϻᴇᴛᴀʟ谢谢!成功了。ϻᴇᴛᴀʟ
SUM
实际上不是保留关键字。但看起来你的建议解决了OP.@TimBiegeleisen,因此我更正了我所说的。
SUM
不是Oracle保留关键字,而是PL/SQL保留关键字。SUM是保留关键字,请尝试使用其他变量@ᴇᴛᴀʟ谢谢!成功了。ϻᴇᴛᴀʟ
SUM
实际上并不是一个保留关键字。但看起来你的建议解决了OP.@TimBiegeleisen,因此我更正了我所说的。
SUM
不是Oracle保留关键字,而是PL/SQL保留关键字。