第35行的错误:ORA

编程入门 行业动态 更新时间:2024-10-27 04:24:44
本文介绍了第35行的错误:ORA-06550:第35行,第4栏:PLS-00103:遇到符号“;”,期待以下之一时:if的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

1 DECLARE 2 SNO NUMBER(10):=&ENO; 3 SNAME VRACHAR2(10):='&ENAME'; 4 M1 NUMBER(6):=&M1; 5 M2 NUMBER(6):=&M2; 6 M3 NUMBER(6):=&M3; 7 TOTAL NUMBER(6); 8 AVRG NUMBER(6); 9 RESULT VARCHAR2(6); 10 GRADE CHAR; 11 BEGIN 12 IF M1>40 AND M2>40 AND M3>40 THEN 13 RESULT:='PASS'; 14 IF AVRG>=75 THEN 15 GRADE:='A'; 16 ELSIF AVRG>=60 THEN 17 GRADE:='B'; 18 IF AVRG>=45 THEN 19 GRADE:='C'; 20 ELSE 21 GRADE:='D'; 22 END IF; 23 ELSE 24 RESULT:='FAIL'; 25 GRADE:='_'; 26 ENDIF; 27 DBMS_OUTPUT.PUT_LINE ('________________________________________'); 28 DBMS_OUTPUT.PUT_LINE('SNO: ' || SNO); 29 DBMS_OUTPUT.PUT_LINE('SNAME:' || SNAME); 30 DBMS_OUTPUT.PUT_LINE('TOTAL:' || TOTAL); 31 DBMS_OUTPUT.PUT_LINE('AVRG:' || AVRG); 32 DBMS_OUTPUT.PUT_LINE('RESULT' || RESULT); 33 DBMS_OUTPUT.PUT_LINE('GRADE' || GRADE); 34 DBMS_OUTPUT.PUT_LINE ('________________________________________'); 35* END; 36 / Enter value for eno: 23 old 2: SNO NUMBER(10):=&ENO; new 2: SNO NUMBER(10):=23; Enter value for ename: TYU old 3: SNAME VRACHAR2(10):='&ENAME'; new 3: SNAME VRACHAR2(10):='TYU'; Enter value for m1: 67 old 4: M1 NUMBER(6):=&M1; new 4: M1 NUMBER(6):=67; Enter value for m2: 77 old 5: M2 NUMBER(6):=&M2; new 5: M2 NUMBER(6):=77; Enter value for m3: 89 old 6: M3 NUMBER(6):=&M3; new 6: M3 NUMBER(6):=89; END;

以下pl / sql程序引发错误 即第35行的错误: ORA-06550:第35行,第4栏: PLS-00103:遇到符号;当 期待下列之一时: 如果 请帮帮我。 谢谢你

the following pl/sql programme raise the error i.e " ERROR at line 35: ORA-06550: line 35, column 4: PLS-00103: Encountered the symbol ";" when expecting one of the following: if " please help me. thank u

推荐答案

好像你拼错了一个 END IF 。 在第26行你有 It seems that you have misspelled one END IF. On line 26 you have ENDIF;

应该是

while it should be

END IF;

作为旁注,最里面的IF看起来似乎不需要。因此,而不是:

As a side note the innermost IF looks like it's not needed. So instead of having:

DECLARE SNO NUMBER(10):=&ENO; SNAME VRACHAR2(10):='&ENAME'; M1 NUMBER(6):=&M1; M2 NUMBER(6):=&M2; M3 NUMBER(6):=&M3; TOTAL NUMBER(6); AVRG NUMBER(6); RESULT VARCHAR2(6); GRADE CHAR; BEGIN IF M1>40 AND M2>40 AND M3>40 THEN RESULT:='PASS'; IF AVRG>=75 THEN GRADE:='A'; ELSIF AVRG>=60 THEN GRADE:='B'; IF AVRG>=45 THEN GRADE:='C'; ELSE GRADE:='D'; END IF; ELSE RESULT:='FAIL'; GRADE:='_'; END IF; DBMS_OUTPUT.PUT_LINE('________________________________________'); DBMS_OUTPUT.PUT_LINE('SNO: ' || SNO); DBMS_OUTPUT.PUT_LINE('SNAME:' || SNAME); DBMS_OUTPUT.PUT_LINE('TOTAL:' || TOTAL); DBMS_OUTPUT.PUT_LINE('AVRG:' || AVRG); DBMS_OUTPUT.PUT_LINE('RESULT' || RESULT); DBMS_OUTPUT.PUT_LINE('GRADE' || GRADE); DBMS_OUTPUT.PUT_LINE('________________________________________'); END; /

为什么不将它简化为

Why not simplify it to

DECLARE SNO NUMBER(10):=&ENO; SNAME VRACHAR2(10):='&ENAME'; M1 NUMBER(6):=&M1; M2 NUMBER(6):=&M2; M3 NUMBER(6):=&M3; TOTAL NUMBER(6); AVRG NUMBER(6); RESULT VARCHAR2(6); GRADE CHAR; BEGIN IF M1>40 AND M2>40 AND M3>40 THEN RESULT:='PASS'; IF AVRG>=75 THEN GRADE:='A'; ELSIF AVRG>=60 THEN GRADE:='B'; ELSIF AVRG>=45 THEN GRADE:='C'; ELSIF ADD_THE_CORRECT_LIMIT_HERE GRADE:='D'; ELSE RESULT:='FAIL'; GRADE:='_'; END IF; DBMS_OUTPUT.PUT_LINE('________________________________________'); DBMS_OUTPUT.PUT_LINE('SNO: ' || SNO); DBMS_OUTPUT.PUT_LINE('SNAME:' || SNAME); DBMS_OUTPUT.PUT_LINE('TOTAL:' || TOTAL); DBMS_OUTPUT.PUT_LINE('AVRG:' || AVRG); DBMS_OUTPUT.PUT_LINE('RESULT' || RESULT); DBMS_OUTPUT.PUT_LINE('GRADE' || GRADE); DBMS_OUTPUT.PUT_LINE('________________________________________'); END; /

更多推荐

第35行的错误:ORA

本文发布于:2023-07-22 10:39:49,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1186771.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:错误   ORA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!