今天爱分享给大家带来PLSQL编程-游标【详细讲解】,希望能够帮助到各位。
一、含义
游标是用来操作查询结果集,相当于是JDBC中ResultSet,它可以对查询的结果一行一行的获取
二、语法
--第一步:定义游标 --第一种:普通游标 cursor 游标名[(参数 参数类型)] is 查询语句; --第二种:系统引用游标 游标名 sys_refcursor; --第二步:打开游标 --第一种:普通游标 open 游标名[(参数 参数类型)]; --第二种:系统引用游标 open 游标名 for 查询语句; --第三步:获取一行 fetch 游标名 into 变量; --第四步:关闭游标 close 游标名;
三、演示
1、普通游标使用
--输出指定部门下的员工姓名和工资 declare --1.声明游标 cursor vrows(dno number) is select * from emp where deptno = dno; --声明变量 vrow emp%rowtype; begin --2.打开游标 open vrows(10); --3.循环遍历 loop fetch vrows into vrow; exit when vrows%notfound; dbms_output.put_line('姓名:' || vrow.ename || ' 工资: ' || vrow.sal); end loop; --4.关闭游标 close vrows; end;
2、系统引用游标使用
--输出员工表中所有的员工姓名和工资 declare --1.声明系统引用游标 vrows sys_refcursor; --声明变量 vrow emp%rowtype; begin --2.打开游标 open vrows for select * from emp; --3.循环遍历 loop fetch vrows into vrow; exit when vrows%notfound; dbms_output.put_line('姓名:' || vrow.ename || ' 工资: ' || vrow.sal); end loop; --4.关闭游标 close vrows; end;
3、使用for循环输出
--输出员工表中所有的员工姓名和工资 declare cursor vrows is select * from emp; begin --自动定义变量vrow,自动打开游标,自动关闭游标 for vrow in vrows loop dbms_output.put_line('姓名:' || vrow.ename || ' 工资: ' || vrow.sal || '工作:' || vrow.job); end loop; end;