Explorer8 2017-02-06 06:03 采纳率: 0%
浏览 5488

MySQL的存储过程declare语句报错

 CREATE PROCEDURE curdemo()
begin
  declare var_id varchar(32);
  declare var_number varchar(32);
  DECLARE var_model VARCHAR(32);
  declare rs cursor for select id,number from t_device_lending;
  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET Done = 1;
  open rs;
  fetch next from rs into var_id,var_number;
  REPEAT
      IF NOT Done THEN
       select model_number into var_model from t_device_info where number = var_number;
       update t_device_lending_copy set model_number = var_model where id = var_id;
      END IF;

      FETCH NEXT FROM rs INTO id,number;

      UNTIL Done END REPEAT;

  /* 关闭游标 */
  CLOSE rs;  
end

报的错是“You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'declare var_id varchar(32)' at line 3”
我对了一下5.7.10的官方手册。declare的语法应该是正确的,怎么会报这种错?求大神解释。

  • 写回答

2条回答 默认 最新

  • 风一样的女子& 2017-02-07 10:08
    关注

    图片说明
    end后面少了$$,所以引起了语法报错。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料