SQL中的游标、异常处理、存储函数及总结(最新推荐)(sqlserver游标的使用场景)越早知道越好

随心笔谈11个月前发布 admin
94 0

– 用条件名
use test_procedure ;
— 需求:输入一个部门名,查询该部门员工的编号、名字、薪资,将查询的结果集添加游标
delimiter $$
create procedure proc22(in in_name varchar(50))
begin
— 定义局部变量
declare var_empno int;
declare var_ename varchar(50);
declare var_sal decimal(7,2);

— 定义标记值
declare flag int default 1;
— 声明游标
declare my_cursor cursor for
select empno ,ename ,sal from emp e,dept d where d.dname=in_name ;
— 定义句柄,当数据未发现时将标记位设置为0
declare continue handler for not found set flag=0;

— 打开游标
open my_cursor;
— 通过游标获得值
label:loop
fetch my_cursor into var_empno,var_ename,var_sal;
if flag=1 then
select var_empno,var_ename,var_sal;
else
leave label;
end if;
end loop label;
— 关闭游标
close my_cursor;
end $$
delimiter ;

call proc22(‘销售部’);

— 用条件码
use test_procedure ;
— 需求:输入一个部门名,查询该部门员工的编号、名字、薪资,将查询的结果集添加游标
delimiter $$
create procedure proc23(in in_name varchar(50))
begin
— 定义局部变量
declare var_empno int;
declare var_ename varchar(50);
declare var_sal decimal(7,2);

— 定义标记值
declare flag int default 1;
— 声明游标
declare my_cursor cursor for
select empno ,ename ,sal from emp e,dept d where d.dname=in_name ;
— 定义句柄,当数据未发现时将标记位设置为0
declare continue handler for 1329 set flag=0;

— 打开游标
open my_cursor;
— 通过游标获得值
label:loop
fetch my_cursor into var_empno,var_ename,var_sal;
if flag=1 then
select var_empno,var_ename,var_sal;
else
leave label;
end if;
end loop label;
— 关闭游标
close my_cursor;
end $$
delimiter ;

call proc23(‘销售部’);

© 版权声明

相关文章