Oracle数据库采用游标方式输出各课程的课号、课名和平均分。
时间: 2024-10-24 13:10:25 浏览: 30
Oracle数据库中游标使用研究.pdf
Oracle数据库通常通过游标(Cursor)来逐行处理查询结果,并能够针对每一条数据执行操作,比如获取特定字段。要使用游标输出各课程的课号、课名和平均分,你可以编写如下的PL/SQL代码片段:
```sql
DECLARE
CURSOR course_info IS
SELECT course_id, course_name, AVG(grade) AS average_score
FROM courses
GROUP BY course_id, course_name;
-- 定义游标变量
course_record course_info%ROWTYPE;
BEGIN
OPEN course_info;
-- 循环遍历游标,显示每门课程的信息
LOOP
FETCH course_info INTO course_record;
EXIT WHEN course_info%NOTFOUND; -- 当没有更多记录时退出循环
DBMS_OUTPUT.PUT_LINE('课程ID: ' || course_record.course_id);
DBMS_OUTPUT.PUT_LINE('课程名称: ' || course_record.course_name);
DBMS_OUTPUT.PUT_LINE('平均分数: ' || course_record.average_score);
DBMS_OUTPUT.NEW_LINE; -- 换行
END LOOP;
CLOSE course_info; -- 关闭游标
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('发生错误: ' || SQLERRM);
END;
```
在这个例子中,我们首先声明了一个游标`course_info`,它从`courses`表中查询出课号、课名及其平均分。然后使用`OPEN`打开游标,接着在`LOOP`中逐条取出数据并打印。如果遇到错误,会捕获异常并输出错误信息。
阅读全文