mysql 游标

    自己案例  
    DELIMITER **  
    DROP PROCEDURE IF EXISTS SP_T6136 **  
    CREATE PROCEDURE SP_T6136 ()  
    BEGIN  
    -- 需要定义接收游标数据的变量   
         declare _f03 enum('BUY','SYS');    
         declare _f01 bigint(20);  
         declare _f02 tinyint(4) ;  
         declare _f04 datetime;  
         -- 判断游标到达最后的情况 该变量会在游标到达最后是变为1  
         DECLARE _STOP INT DEFAULT 0;  
         -- 声明游标  
         DECLARE _t6136 CURSOR FOR SELECT F01,f02,f03,f04 FROM S61.T6136 ;    
         -- 设置游标的终止条件  
         DECLARE CONTINUE HANDLER FOR NOT FOUND SET _STOP=1;  
         -- 打开游标  
         OPEN _t6136;     
      -- 提取游标里的数据  
     FETCH _t6136 INTO _f01,_f02,_f03,_f04;  
     /* 开始循环 */  
     WHILE _STOP<>1 DO   
        /*任务业务*/  
       select _f01 as a,_f02 as b,_f03 as e,_f04 as c;  
       /*游标向下走一步*/   
       FETCH _t6136 INTO _f01,_f02,_f03,_f04;  
          /* 结束循环 */  
         END WHILE;  
         -- 关闭游标  
         CLOSE _t6136;  
    END **  
    DELIMITER ;  
    CALL SP_T6136;  
      
      
    DELIMITER **  
    DROP PROCEDURE IF EXISTS SP_T6136 **  
    CREATE PROCEDURE SP_T6136 ()  
    BEGIN  
    -- 需要定义接收游标数据的变量   
         declare _f03 enum('BUY','SYS');    
         declare _f01 bigint(20);  
         declare _f02 tinyint(4) ;  
         declare _f04 datetime;  
         -- 判断游标到达最后的情况 该变量会在游标到达最后是变为True  
         DECLARE done INT DEFAULT true;  
         -- 声明游标  
         DECLARE _t6136 CURSOR FOR SELECT F01,f02,f03,f04 FROM S61.T6136 ;    
         -- 设置游标的终止条件  
         DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=false;  
          -- 打开游标  
         OPEN _t6136;     
      -- 提取游标里的数据  
     FETCH _t6136 INTO _f01,_f02,_f03,_f04;  
     /* 开始循环 */  
     WHILE done DO  
       /*任务业务*/  
       select _f01 as a,_f02 as b,_f03 as e,_f04 as c;  
       /*游标向下走一步*/   
       FETCH _t6136 INTO _f01,_f02,_f03,_f04;  
          /* 结束循环 */  
         END WHILE;  
         -- 关闭游标  
         CLOSE _t6136;  
    END **  
    DELIMITER ;  
    CALL SP_T6136;  
      
      
    DELIMITER **  
    DROP PROCEDURE IF EXISTS SP_T6136 **  
    CREATE PROCEDURE SP_T6136 ()  
    BEGIN  
    -- 需要定义接收游标数据的变量   
         DECLARE _f03 ENUM('BUY','SYS');    
         DECLARE _f01 BIGINT(20);  
         DECLARE _f02 TINYINT(4) ;  
         DECLARE _f04 DATETIME;  
         -- 判断游标到达最后的情况 该变量会在游标到达最后是变为True  
         DECLARE done INT DEFAULT FALSE;  
         -- 声明游标  
         DECLARE _t6136 CURSOR FOR SELECT F01,f02,f03,f04 FROM S61.T6136 ;    
         -- 设置游标的终止条件  
         DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE;  
          -- 打开游标  
         OPEN _t6136;   
           -- 开始循环  
            read_loop: LOOP  
       -- 提取游标里的数据  
      FETCH _t6136 INTO _f01,_f02,_f03,_f04;  
      /*判断是否结束循环*/  
      IF done THEN  
          LEAVE read_loop;  
      END IF;     
      /*任务业务*/  
      select _f01 as a,_f02 as b,_f03 as e,_f04 as c;  
            -- 关闭循环  
     END LOOP;  
         -- 关闭游标  
         CLOSE _t6136;  
    END **  
    DELIMITER ;  
    CALL SP_T6136;  
      
      
    DELIMITER **  
    DROP PROCEDURE IF EXISTS SP_T6136 **  
    CREATE PROCEDURE SP_T6136 ()  
    BEGIN  
    -- 需要定义接收游标数据的变量   
         DECLARE _f03 ENUM('BUY','SYS');    
         DECLARE _f01 BIGINT(20);  
         DECLARE _f02 TINYINT(4) ;  
         DECLARE _f04 DATETIME;  
         -- 判断游标到达最后的情况 该变量会在游标到达最后是变为True  
         DECLARE _STOP INT DEFAULT 1;  
         -- 声明游标  
         DECLARE _t6136 CURSOR FOR SELECT F01,f02,f03,f04 FROM S61.T6136 ;    
         -- 设置游标的终止条件  
         DECLARE CONTINUE HANDLER FOR NOT FOUND SET _STOP=0;  
          -- 打开游标  
         OPEN _t6136;   
           -- 开始循环  
            read_loop: LOOP  
       -- 提取游标里的数据  
      FETCH _t6136 INTO _f01,_f02,_f03,_f04;  
      /*判断是否结束循环*/  
      IF _STOP<>1 THEN  
          LEAVE read_loop;  
      END IF;     
      /*任务业务*/  
      select _f01 as a,_f02 as b,_f03 as e,_f04 as c;  
            -- 关闭循环  
     END LOOP;  
         -- 关闭游标  
         CLOSE _t6136;  
    END **  
    DELIMITER ;  
    CALL SP_T6136; 
 
原文地址:https://www.cnblogs.com/ak23173969/p/4180156.html