转载
在导入存储过程时经常遇见下列DECLARE报错的问题:
Error Code : 1064
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 '' at line 3
(0 ms taken)
有多少个DECLARE就会报多少次,然后后面就是取不到变量的报错。
这个原因是没有定义delimiter
如下的会报错:
CREATE PROCEDURE p8()
BEGIN
DECLARE a INT;
DECLARE b INT;
SET a = 5;
SET b = 5;
select pkid,name,userGroup_desc,parent_id,group_state from T_VSM_SECPOLICY_USERGROUP;
END;
错误信息:
Error Code : 1064
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 '' at line 3
(0 ms taken)
。。。。
添加了delimiter后就不报了
delimiter //
CREATE PROCEDURE p8()
BEGIN
DECLARE a INT;
DECLARE b INT;
SET a = 5;
SET b = 5;
declare cur0 cursor for select pkid from T_VSM_SECPOLICY_USERGROUP; --这里为什么报错?
END//
具体原因可以查看mysql的官方手册
http://dev.mysql.com/doc/refman/5.1/zh/stored-procedures.html#declare-handlers
中的创建存储过程章节里的下列内容,不能被忽视了: