文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mysql 存储过程中双重循环嵌套的应用

2021-05-21 20:55

关注

mysql 存储过程中双重循环嵌套的应用

话不多直接上代码,注释很详细,下面代码确认运行无误,自己去感悟吧朋友

CREATE PROCEDURE SYC_FILE_DOC_INFO()
BEGIN    
    DECLARE A_PK_FILEDOC         char(24);
    DECLARE A_PK_CORP            char(6);
    DECLARE A_VCODE              varchar(30) DEFAULT "" ;
    DECLARE A_VNAME              varchar(100) DEFAULT "" ;
    DECLARE A_VMEMO              varchar(200) DEFAULT "" ;
    DECLARE A_ISSEALED           char(1);
    DECLARE A_DR                 numeric(8,0) DEFAULT 0;
    DECLARE A_TS                 TIMESTAMP;
    DECLARE A_ISLEAF             char(1);
    DECLARE A_FILELEVEL          numeric(8,0) DEFAULT 0;
    DECLARE A_IFILETYPE          numeric(8,0) DEFAULT 0;
    DECLARE B_PK_CORP            char(6);
    -- 定义结束标识
    DECLARE done INT DEFAULT 0;
    DECLARE edone INT DEFAULT 0;
    BEGIN
        -- 定义游标v_kf_datas以及结束标识
        DECLARE v_kf_datas CURSOR FOR Select distinct pk_corp From ynt_kfiledoc y Where ifnull(dr,0) = 0;
        DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;-- 结束标识
        OPEN v_kf_datas;-- 打开游标
            vkfdatasLoop:LOOP -- 循环游标开始
                FETCH v_kf_datas INTO B_PK_CORP;
                IF done = 1 THEN
                    LEAVE vkfdatasLoop;#跳出循环
                ELSE
                SET edone = 0;-- !!!!!重置标识
                    BEGIN
                        -- 定义游标v_file_data以及结束标识
                        DECLARE v_file_data CURSOR FOR Select * From ynt_filedoc y Where y.pk_corp = "000001" and y.vcode like "99%";
                        DECLARE CONTINUE HANDLER FOR NOT FOUND SET edone = 1;#结束标识
                        OPEN v_file_data;-- 打开游标
                            vfiledataLoop:LOOP -- 循环游标开始
                                FETCH v_file_data INTO A_PK_FILEDOC,A_PK_CORP,A_VCODE,A_VNAME,A_VMEMO,A_ISSEALED,A_DR,A_TS,A_ISLEAF,A_FILELEVEL,A_IFILETYPE;
                                IF edone = 1 THEN
                                    LEAVE vfiledataLoop;
                                ELSE
                                    -- 对表的操作
                                    insert into ynt_kfiledoc(pk_kfiledoc, pk_corp, pk_source, vcode, vname, vmemo, issealed, dr, ts, isleaf, filelevel, ifiletype)
                                    values(CONCAT(B_PK_CORP,substring(A_PK_FILEDOC,7, 12),fn_get_random_str(6)),B_PK_CORP, A_PK_FILEDOC, A_VCODE, A_VNAME, A_VMEMO, A_ISSEALED, 0, A_TS, A_ISLEAF, A_FILELEVEL, A_IFILETYPE);
                                END IF;
                            END LOOP;
                        CLOSE v_file_data;-- 关闭游标
                    END;
                END IF;
            END LOOP; -- 结束游标
        CLOSE v_kf_datas;-- 关闭游标
        COMMIT;
    END;
END;

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯