我的代码有什么问题
sql> declare 2 mark number :=50; 3 begin 4 mark :=& mark; 5 if (mark between 85 and 100) 6 then 7 dbms_output.put_line('mark is A '); 8 else if (mark between 50 and 65) then 9 dbms_output.put_line('mark is D '); 10 else if (mark between 66 and 75) then 11 dbms_output.put_line('mark is C '); 12 else if (mark between 76 and 84) then 13 dbms_output.put_line('mark is B'); 14 else 15 dbms_output.put_line('mark is F'); 16 end if; 17 end; 18 / Enter value for mark: 65 old 4: mark :=& mark; new 4: mark :=65; end; *
ERROR at line 17:
ORA-06550: line 17,column 4:
pls-00103: Encountered the symbol “;” when expecting one of the following:
if
问题是else和if是两个运算符.由于你打开一个新的’if’,你需要一个相应的’end if’.
从而:
declare mark number :=50; begin mark :=& mark; if (mark between 85 and 100) then dbms_output.put_line('mark is A '); else if (mark between 50 and 65) then dbms_output.put_line('mark is D '); else if (mark between 66 and 75) then dbms_output.put_line('mark is C '); else if (mark between 76 and 84) then dbms_output.put_line('mark is B'); else dbms_output.put_line('mark is F'); end if; end if; end if; end if; end; /
或者你可以使用elsif:
declare mark number :=50; begin mark :=& mark; if (mark between 85 and 100) then dbms_output.put_line('mark is A '); elsif (mark between 50 and 65) then dbms_output.put_line('mark is D '); elsif (mark between 66 and 75) then dbms_output.put_line('mark is C '); elsif (mark between 76 and 84) then dbms_output.put_line('mark is B'); else dbms_output.put_line('mark is F'); end if; end; /
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。