2013-03-12 97 views
1

下面的程序在第15行產生一些語法錯誤。我不明白錯誤的原因。爲什麼我會收到這個編譯錯誤?

declare 
value_1 INTEGER(5); 
value_2 INTEGER(5); 
value_3 INTEGER(5); 
value_4 INTEGER(5); 
begin 
value_1 := 20; 
value_2 := 40; 
value_3 := 60; 
value_4 := 80; 
if value_1 > value_2 
then 
    dbms_output.put_line('Value_1 > Value_2'); 
end if; 
elsif value_4 > value_3 # statement 15 
then 
    dbms_output.put_line('Value_4 > Value_3'); 
end if; 
end; 

獲取引發的錯誤:

Error report: 
ORA-06550: line 15, column 9: 
PLS-00103: Encountered the symbol "VALUE_4" when expecting one of the following: 

:= . (@ % ; 
06550. 00000 - "line %s, column %s:\n%s" 
*Cause: Usually a PL/SQL compilation error. 
*Action: 
Error starting at line 1 in command: 
declare 
value_1 INTEGER(5); 
value_2 INTEGER(5); 
value_3 INTEGER(5); 
value_4 INTEGER(5); 
begin 
value_1 := 20; 
value_2 := 40; 
value_3 := 60; 
value_4 := 80; 
if value_1 > value_2 
then 
    dbms_output.put_line('Value_1 > Value_2'); 
end if; 
elsif value_4>value_3 
then 
    dbms_output.put_line('Value_4 > Value_3'); 
end if; 
end; 

Error report: 
ORA-06550: line 15, column 9: 
PLS-00103: Encountered the symbol "VALUE_4" when expecting one of the following: 

:= . (@ % ; 
06550. 00000 - "line %s, column %s:\n%s" 
*Cause: Usually a PL/SQL compilation error. 
*Action: 

什麼錯誤呢?我如何擺脫這個錯誤?

回答

1

同你說的唯一的問題我可以看到的是額外的end if;

SQL語句

declare 
value_1 INTEGER(5); 
value_2 INTEGER(5); 
value_3 INTEGER(5); 
value_4 INTEGER(5); 
begin 
value_1 := 20; 
value_2 := 40; 
value_3 := 60; 
value_4 := 80; 
if (value_1 > value_2) then 
    dbms_output.put_line('Value_1 > Value_2'); 
elsif (value_4 > value_3) then 
    dbms_output.put_line('Value_4 > Value_3'); 
end if; 
end; 
0

這是工作的人......我是對的?

declare 
value_1 INTEGER(5); 
value_2 INTEGER(5); 
value_3 INTEGER(5); 
value_4 INTEGER(5); 
begin 
value_1 := 20; 
value_2 := 40; 
value_3 := 60; 
value_4 := 80; 
if (value_1 > value_2) 
then 
    dbms_output.put_line('Value_1 > Value_2'); 

elsif (value_4 > value_3) 
then 
    dbms_output.put_line('Value_4 > Value_3'); 
end if; 
end; 
/

您已關閉if語句並再次打開elsif語句..我認爲這是錯誤。

相關問題