2009-11-21 54 views
2

我是新來的PL/SQL,並使用下面的代碼試圖打印偶數截至100:PL/SQL PLS-00103上增加兩個變量

Declare 
    i number; 
    sum number:=0; 
    x number:=2; 
    n number; 
Begin 
    for i in 1..100 loop 
     if (i%x=0) then 
      n:=i;  
      sum:=sum+n; 
     end if; 
    end loop; 
    dbms_output.put_line(sum); 
end; 

我得到這個錯誤

ERROR at line 10: 
ORA-06550: line 10, column 12: 
PLS-00103: Encountered the symbol "+" when expecting one of the following: 
(
ORA-06550: line 13, column 26: 
PLS-00103: Encountered the symbol ")" when expecting one of the following: 
( 

幫助? :(

在PL/SQL中沒有%操作符,而是使用mod(i,x)函數,總之你不需要n變量sum:= sum +我會這樣做sum可能是保留字,使用s代替 \

現在:。

Declare 
    i number; 
    sum number:=0; 
Begin 
    for i in 1..100 loop 
     if (mod(i,2)=0) then 
       sum:=sum+i; 
     end if; 
    end loop; 
    dbms_output.put_line(sum); 
end; 

sameproblem :(

回答

5

有一個在PL/SQL沒有運算符%;使用mod(i,x)功能,而不是無論如何,你不不需要n變量。sum:=sum+i會做。但:sum是PL/SQL keyword,請使用s代替。

0
Declare 
i number; 
sum1 number:=0; 
x number:=2; 
n number; 
Begin 
for i in 1..100 loop 
if(i mod x =0)then 
n:=i; 
sum1:=sum1+n; 
end if; 
end loop; 
dbms_output.put_line(sum1); 
end; 
/

原因:

「求和」是聚合函數之一,所以我們不能以此作爲變量名。