Oracle随机输入某一课程名,通过游标取出该课程的成绩信息,包括:学号、姓名和成绩,并输出(注:无参数游标)
时间: 2024-10-27 12:05:22 浏览: 18
在Oracle中,如果你想要随机选择一门课程并获取该课程的成绩信息,可以创建一个无参数的游标(%ROWTYPE用于自动获取当前行的数据),例如:
```sql
DECLARE
cursor coursescor CURSOR FOR
SELECT s.student_id, s.name, sc.score
FROM students s
JOIN scores sc ON s.student_id = sc.student_id
WHERE course_name IN (
SELECT course_name
FROM courses
ORDER BY DBMS_RANDOM.VALUE(1, COUNT(*)) -- 随机选取一行
FETCH FIRST 1 ROW ONLY
);
course_record coursescor%ROWTYPE;
BEGIN
OPEN coursescor;
LOOP
FETCH coursescor INTO course_record;
EXIT WHEN coursescor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('学号: ' || course_record.student_id);
DBMS_OUTPUT.PUT_LINE('姓名: ' || course_record.name);
DBMS_OUTPUT.PUT_LINE('成绩: ' || course_record.score);
END LOOP;
CLOSE coursescor;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('未找到符合条件的课程.');
END;
/
```
这段代码首先定义了一个游标`coursescor`,它会查询所有关联到某个随机选择的课程(`course_name`)的学生及其成绩。然后循环遍历游标,显示每一条记录。
阅读全文