我对 PL/SQL 非常“菜鸟”,但我必须专门编写一些 PL/SQL 代码(DECLARE/BEGIN/等),而不仅仅是一个查询。
我真的在努力寻找一个很好的例子,希望能让我掌握其余的问题。这是我目前正在尝试弄清楚的一个:
编写一个 PL/SQL 程序来计算每个学生的总学分。注意:学生获得 F 的课程不计入学分。如果学生重修一门他/她成绩较低的课程,则只计入一次学分。输出应包括学生人数和总学分。
Student-schema =(studentnum, name, standing, gpa, major)
Class-schema = (schedulenum, semester, department, classnum, days, time, place, enrollment)
Instructor-schema = (name, department, office)
Teaches-schema = (name, schedulenum, semester)
Taking-schema = (studentnum, schedulenum, semester, grade)
这是我可悲的尝试之一:
DECLARE
stud_id student.studentnum%TYPE;
total number(10);
BEGIN
FOR count IN (SELECT* FROM taking)
LOOP
SELECT studentnum, count(*) total
INTO stud_id, total
WHERE grade >= 1;
END LOOP;
END;
/
在上面的一个中,idk 我在做什么错或对。我在第 1 行收到错误“精确提取返回的行数超过请求的行数”。我之前遇到过这个错误,并认为 for 循环可以解决它。显然我错了。我什至不知道这将如何成功输出结果,即使它确实查询正确。我很迷茫,一点点的方向会有很长的路要走。