【发布时间】:2021-01-31 14:04:54
【问题描述】:
'下面是PLSQL打印学生成绩的程序。程序成功执行但无法打印成绩。有什么建议/更正吗?
步骤:1
CREATE TABLE STUDENT(
ROLL_NO NUMBER,
NAME VARCHAR2(100),
SECTION NUMBER,
CLASS VARCHAR2(100),
ORACLE NUMBER,
Dev_2000 NUMBER
);
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (1, 'AVINASH', 9025, 'STUDENT', 75, 85)
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (2, 'AKASH', 9025, 'WORKING', 45, 85);
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (3, 'ASHISH', 9025, 'WORKING', 48, 67)
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (4, 'AJAY', 9025, 'WORKING', 84, 56)
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (5, 'AKANSHA', 9025, 'WORKING', 62, 78)
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (6, 'AKSHAY', 9025, 'STUDENT', 75, 85)
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (7, 'ATHARVA', 9025, 'WORKING', 45, 85)
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (8, 'RAHUL', 9025, 'WORKING', 48, 67)
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (9, 'VYANKATESH', 9025, 'WORKING', 84, 56)
INSERT INTO STUDENT (ROLL_NO, NAME, SECTION, CLASS, ORACLE, DEV_2000) values (10, 'RUSHIKESH', 9025, 'STUDENT', 62, 78)
步骤:2
CREATE TABLE Dev_2000_result ( ROll_NO Number (4), TOTAL Number (3), PERCENT Number (5,2), GRADE Varchar2 (10) )
步骤:3
DECLARE
v_student student%rowtype;
v_result dev_2000_result%rowtype;
grade varchar2(10);
CURSOR c1 IS
SELECT *
FROM student;
BEGIN
FOR v_student IN c1 LOOP
IF v_student.class='Working' THEN
IF v_student.Dev_2000 <50 THEN
grade:='FAIL';
ELSE grade:='PASS';
END IF;
ELSIF v_student.class='Student' THEN
IF v_student.Dev_2000 >=80 THEN grade:='HONOURS';
elsif v_student.Dev_2000 >=60 THEN grade:='A';
elsif v_student.Dev_2000 >=50 THEN grade:='B';
elsif v_student.Dev_2000 >=40 THEN grade:='C';
ELSE grade:='B';
END IF;
END IF;
INSERT INTO Dev_2000_result
VALUES(v_student.Roll_no,
v_student.Oracle,
v_student.Dev_2000,
grade);
END LOOP;
END;
/
步骤:4
Execute dev_2000_result;
【问题讨论】:
-
打印是什么意思?在哪里打印?您的代码不包含任何用于打印的内容。
-
代码计算成绩后打印dev_2000_result表中的成绩。以学生表作为输入。
-
您可以查找
DBMS_OUTPUT.PUT_LINE。顺便说一句,所有Grade值都插入NULL到Dev_2000_result。 -
这就是问题!!!你能上传完整的代码吗
grade values should not be null.@BarbarosÖzhan -
'Working''WORKING'