在使用存储过程的时候,通常会出现很多数据需要循环处理的情况,这里我们介绍一种游标的方法。
一:游标的定义:
1 语法: declare 游标名(自定义) CURSOR for 循环的数据。
2 实例: 涉及到的表名一定要采用别名
DECLARE c_result CURSOR FOR select a.id,a.patient_id,a.visit_id from drug_disp_mid a where a.disp_no=dispNo;
*** 定义游标退出循环的变量标志:通常是INT 类型的。
DECLARE NO_MORE_DATE INT DEFAULT 0;
DECLARE EXIT HANDLER FOR NOT FOUNT SET NO_MORE_DATA=1;
二:打开游标:
open c_result;
三:循环:
repeat
四:赋值:
FETCH c_result INTO id, patient_id, visit_id
五:处理数据 ...
六:结束循环--提交事物,关闭游标。
UNTIL no_more_departments
end repeat;
commit;
close c_result;