我有一个写一个程序来计算学生的平均分数:我的PL/SQL块有什么问题?
DECLARE
rno NUMBER(10);
wt NUMBER(10);
dbms NUMBER(10);
se NUMBER(10);
toc NUMBER(10);
per FLOAT(10);
total NUMBER(10);
BEGIN
rno := &rno;
wt := &wt;
dbms := &dbms;
se := &se;
toc := &toc;
IF(wt < 40 OR se < 40 OR toc < 40 OR dbms < 40) THEN
dbms_output.Put_line('Fail');
total := (wt + se + toc + dbms);
per := (total/400) * 100;
IF(per > 75) THEN
dbms_output.Put_line('grade A');
ELSIF(per > 65 AND per < 75) THEN
dbms_output.Put_line('grade B');
ELSIF(per > 40 AND per < 65) THEN
dbms_output.Put_line('grade c');
ELSE
dbms_output.Put_line('Invalid Input');
END IF;
dbms_output.Put_line('percentage is' ||per);
END IF;
END;
/
有程序中没有错误。但是程序的输出如下:
Enter value for rno: 1
old 10: rno:=&rno;
new 10: rno:=1;
Enter value for wt: 23
old 11: wt:=&wt;
new 11: wt:=23;
Enter value for dbms: 56
old 12: dbms:=&dbms;
new 12: dbms:=56;
Enter value for se: 74
old 13: se:=&se;
new 13: se:=74;
Enter value for toc: 84
old 14: toc:=&toc;
new 14: toc:=84;
PL/SQL procedure successfully completed.
SQL>/
Enter value for rno: 2
old 10: rno:=&rno;
new 10: rno:=2;
Enter value for wt: 45
old 11: wt:=&wt;
new 11: wt:=45;
Enter value for dbms: 25
old 12: dbms:=&dbms;
new 12: dbms:=25;
Enter value for se: 73
old 13: se:=&se;
new 13: se:=73;
Enter value for toc: 22
old 14: toc:=&toc;
new 14: toc:=22;
PL/SQL procedure successfully completed.
该程序没有达到'if'语句和进一步。请帮忙。
你确定它不是?在上一次结束之前放置一条调试线。 – mmmmmpie 2014-10-10 14:21:23
我们如何放置调试线。 – 2014-10-10 14:51:18
我的回答编辑 – Rika 2014-10-10 15:16:37