游标
--提取每个班级的信息,包括班级里的学生的信息
declare --保存班级信息的游标
--定义一个游标,将tb_clazz所有数据提取出来存到c_tb_clazz中
cursor c_tb_clazz is select * from tb_clazz ; --保存学生信息的游标 cursor c_tb_student(v_clazz_id number) is select * from tb_student where clazz_id = v_clazz_id; --表示该类型为行数据类型 r_tb_clazz tb_clazz %rowtype; r_tb_student tb_student %rowtype; begin --打开游标 open c_tb_clazz; --循环 loop --提取数据到行 fetch c_tb_clazz into r_tb_clazz; --到什么时候结束 exit when c_tb_clazz%notfound; --打印 dbmp_output.put_line('id:' || r_tb_clazz.id); dbmp_output.put_line('code:' || r_tb_clazz.code); --*********内循环学生信息*********************** open c_tb_student(r_tb_clazz.id); loop fetch c_tb_student into r_tb_student; exit when c_tb_student%notfound; dbmp_output.put_line('name:' || r_tb_student.name); loop end; close c_tb_student; --******************************** --循环结束 loop end; --关闭游标 close c_tb_clazz; end;
游标其实就是内存区的引用,游标就是拿来暂存取出的多行结果。
通常我们说的就是显示游标
%rowtype表示该类型为行数据类型,存储的是一行数据,一行数据里可以有多列,类似于表里的一行数据,也可以是游标里的一行数据,如:
vs_row1 表%rowtype;
vs_row2 游标%rowtype;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步