利用游标输出“计算机”专业学生的成绩。并用while结构来测试全局变量@@Fetch_Status的返回值。 --输出格式如下: --学号------------姓名-----------专业---------课程名字------------成绩
时间: 2023-11-06 09:05:38 浏览: 78
输出学生成绩
为了输出“计算机”专业学生的成绩,我们可以使用游标来遍历学生表,然后使用条件语句来筛选出“计算机”专业的学生,并输出他们的成绩。同时,我们可以使用while结构来测试全局变量@@Fetch_Status的返回值,以确保游标能够正确地遍历所有符合条件的学生。
```sql
--声明游标
DECLARE
CURSOR student_cursor IS
SELECT 学号, 姓名, 专业, 课程名字, 成绩
FROM 学生表
WHERE 专业 = '计算机';
--定义变量
v_学号 学生表.学号%TYPE;
v_姓名 学生表.姓名%TYPE;
v_专业 学生表.专业%TYPE;
v_课程名字 学生表.课程名字%TYPE;
v_成绩 学生表.成绩%TYPE;
BEGIN
--打开游标
OPEN student_cursor;
--循环遍历游标
LOOP
--获取游标数据
FETCH student_cursor INTO v_学号, v_姓名, v_专业, v_课程名字, v_成绩;
--判断是否还有数据
EXIT WHEN student_cursor%NOTFOUND;
--输出符合条件的学生信息和成绩
DBMS_OUTPUT.PUT_LINE(v_学号 || '------------' || v_姓名 || '-----------' || v_专业 || '---------'
|| v_课程名字 || '------------' || v_成绩);
END LOOP;
--关闭游标
CLOSE student_cursor;
END;
```
在上述代码中,我们首先声明了一个名为student_cursor的游标,然后使用SELECT语句从学生表中选择符合条件的学生数据。接着,我们定义了一些变量来存储游标数据,并使用OPEN语句打开游标。在循环中,我们使用FETCH语句来获取游标数据,并使用条件语句来判断是否还有数据。如果还有数据,我们就输出符合条件的学生信息和成绩。最后,我们使用CLOSE语句关闭游标。
为了测试全局变量@@Fetch_Status的返回值,我们可以在循环中添加一个条件语句来判断是否还有数据。如果还有数据,@@Fetch_Status的返回值为0,否则为-1。
阅读全文