比企谷八幡_比八谷 2022-03-30 10:25 采纳率: 100%
浏览 27
已结题

,之前mysql 游标语法错误 ,要在定义游标的地方开辟一个代码块啊?

drop procedure proc_cursor;
create procedure proc_cursor(in one int,in sum int)
begin
        DECLARE cursor_id int;
        DECLARE cursor_na varchar(255);
        DECLARE cursor_addr varchar(255);
        
        DECLARE sb int default 0;
        DECLARE a int default 0;
        DECLARE b int default 0;
        
        
        
        --     limit 下标从0 开始
        set sb = (one - 1) * sum;
        
        if one > 0 then
                    
--          游标前面的赋值sql语句会导致语法报错,解决方法用代码块把声明游标包起来
                begin
                                        --  声明游标 
                            DECLARE cursor_name CURSOR FOR select id,name,addr from student limit sb,sum;
                            DECLARE CONTINUE HANDLER FOR NOT FOUND set a = 1;                                         -- 当读到数据的最后一条时,设置no变量为1
                            
                    --     打开游标    open
                            open cursor_name;
                            
                            while a = 0 do
                            
                        --         fetch是获取游标当前指向的数据行,并将指针指向下一行
                                    fetch cursor_name into cursor_id,cursor_na,cursor_addr;
                                    
                                    
                                    select CONCAT(cursor_id,cursor_na,cursor_addr);

                                
                            end while;
                            
                            --     关闭游标 close
                            close cursor_name;
                END;
                
                
        else 
            select '输入错误';
            
        end if;
        

        
END

call proc_cursor(1,10)

```

  • 写回答

2条回答 默认 最新

  • CSDN专家-sinJack 2022-03-30 10:45
    关注

    能正常执行。

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 创建了问题 3月30日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器