Oracle 游标用For循环比较简单,Mysql也是最近才开始用,感觉稍微麻烦一点,下边直接上代码:

-----------------------------------------------------------
-- Oracle
-- 内嵌游标为带参游标,参数为外游标值
-----------------------------------------------------------
DECLARE
cursor cur_outer is select dept_id from tbl_test_dept;
cursor cur_inner(deptid varchar2) is (SELECT user_id FROM tbl_test_user WHERE dept_id=deptid);
BEGIN
FOR DEPT_ITEM IN cur_outer LOOP
--
--
FOR KEY_ITEM IN cur_process(DEPT_ITEM.DEPT_ID) LOOP --开始内循环
--
--
END LOOP;
END LOOP;
commit;
END; ------------------------------
-- Mysql
-- HANDLER 只能申明一个
-- 内循环结束后需要重置done
-- 发现mysql不能直接执行begin..end,需要创建存储过程后调用执行;
------------------------------
CREATE PROCEDURE `PROC_CURSOR_TEST`()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE item_outer VARCHAR(50);outer
DECLARE item_inner VARCHAR(50);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
-- 定义内外游标
DECLARE cur_outer cursor for select dept_id from tbl_test_dept;
DECLARE cur_inner cursor for (SELECT user_id FROM tbl_test_user WHERE dept_id=item_outer);-- 查询条件可直接用外游标变量值 OPEN cur_outer;
out_loop: LOOP
fetch cur_outer into item_outer;
IF done THEN -- 判断是否继续循环
LEAVE out_loop;
END IF;
--
--
OPEN cur_process; -- 打开内嵌游标
inner_loop: LOOP
fetch cur_inner into item_inner;
IF done THEN
LEAVE inner_loop;
END IF;
--
--
end loop;
CLOSE cur_inner;
SET done = 0; -- 关闭内游标,重置done
end loop;
CLOSE cur_outer;
commit;
END;
call PROC_CURSOR_TEST(); -- 调用存储过程
drop procedure PROC_CURSOR_TEST; --删除

最新文章

  1. mongodb高级应用
  2. <input type="file"> change事件异常处理办法
  3. Linux企业级项目实践之网络爬虫(25)——管理源代码之SVN
  4. ASP.NET中在线用户统计
  5. Android开发 - ActivityLifecycleCallbacks用法初探
  6. iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
  7. javascript继承详解(待续)
  8. Android 应用内多语言切换
  9. javaWeb学习之页面js树
  10. CRC32明文攻击
  11. AtCoder Grand Contest 031 (AGC031) D - A Sequence of Permutations 其他
  12. Batch入门教程丨第一章:部署与Hello World!(下)
  13. Mapreduce概述和WordCount程序
  14. [剑指Offer]10-斐波那契数列(循环)-Java
  15. BZOJ5296 [CQOI2018] 破解D-H协议 【数学】【BSGS】
  16. MySQL环境变量的配置
  17. Oracle 之 函数运用
  18. [整理].net中的延迟初始化器
  19. 一个导致MGR数据混乱Bug的分析和修复
  20. (2.4)DDL增强功能-数据汇总grouping、rollup、cube

热门文章

  1. MVVM设计模式基础知识--ICommand接口
  2. Hook的两个小插曲
  3. 125条常见的java面试、笔试题大汇总
  4. PowerDesigner里面将表中name列值拷贝到comment列
  5. Java基础:异常捕获顺序
  6. oracle 数据库中数据导出到excel
  7. 0x54 树形DP
  8. hdoj--3488--Tour(KM)
  9. [Plugin] 文件上传利器SWFUpload使用指南
  10. B - Guess a number!