MYSQL存储过程游标定义出现错误

mysql错误 专栏收录该内容
3 篇文章 0 订阅

Navicat中写了一个简单的存储过程,用到了游标,仅仅是定义阶段,就不断报错,相关语句如下:

  #step 1 定义游标结束标识符
  DECLARE  DONE          INT DEFAULT FALSE;
  
  #step2 定义游标 
  DECLARE  DPID_CUR      CURSOR FOR SELECT cm_no FROM e_c_m_db.data_points; 
  
  #step3 定义异常时改变游标结束标识符机制
  DECLARE  CONTINUE HANDLER FOR NOT FOUND SET DONE = TRUE; 
  
  #点号 用于存游标值
  DECLARE  DPID          VARCHAR(10); 

错误如下所示:
1.Cursor declaration after handler declaration
在这里插入图片描述
2.Variable or condition declaration after cursor
在这里插入图片描述
网上查了很多资料,皆是调整顺序 先定义游标 再定义HANDLER,反复调整顺序,反复出现如上错误

最后将全部变量声明注意是全部,不单单指有关游标的放在游标相关定义前面,如下

  
  #点号 用于存游标值
  DECLARE  DPID          VARCHAR(10); 
  
  #step 1 定义游标结束标识符
  DECLARE  DONE          INT DEFAULT FALSE;
  
  #step2 定义游标 
  DECLARE  DPID_CUR      CURSOR FOR SELECT cm_no FROM e_c_m_db.data_points; 
  
  #step3 定义异常时改变游标结束标识符机制
  DECLARE  CONTINUE HANDLER FOR NOT FOUND SET DONE = TRUE; 

成功运行

Mark:原因待考证

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值