Oracle利用带参数的游标实现,从student表中查询某一院系女生的姓名和年龄,并输出。(注:“计算机系”为实参)
时间: 2024-10-27 17:05:44 浏览: 19
在Oracle中,你可以使用带参数的游标(Pooled Server cursors 或 PL/SQL CURSOR FOR LOOP)来实现这个需求。假设你有一个名为`student`的表,其中包含`name`、`age`和`department`字段,下面是一个示例:
```sql
DECLARE
cursor student_cursor CURSOR FOR
SELECT name, age
FROM student
WHERE department = :param_department AND gender = '女';
-- 定义参数
TYPE student_param_type IS TABLE OF VARCHAR2(50) INDEX BY PLS_INTEGER;
param_student_params student_param_type := student_param_type('计算机系');
student_record student_cursor%ROWTYPE;
BEGIN
-- 打开游标并传入参数
OPEN student_cursor USING param_student_params;
LOOP
FETCH student_cursor INTO student_record;
EXIT WHEN student_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE('姓名: ' || student_record.name);
DBMS_OUTPUT.PUT_LINE('年龄: ' || student_record.age);
END LOOP;
CLOSE student_cursor;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('该院系没有女生信息.');
END;
/
```
在这里,我们定义了一个带参数的游标,`param_department` 是一个PL/SQL表类型变量,传入实际参数 "计算机系"。然后在`OPEN`命令中使用 `USING` 关键字将参数传递给游标。
阅读全文