读书人

mysql中declare的有关问题

发布时间: 2012-07-30 16:19:05 作者: rapoo

mysql中declare的问题
如题,我在SQLyog Enterprise中执行如下代码,但是每次都是declare报错;在mysql命令行中也是如此,请问该怎么用declare呢?
代码如下:
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)

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 'DECLARE b INT' at line 1
(0 ms taken)

Error Code : 1193
Unknown system variable 'a'
(0 ms taken)

Error Code : 1193
Unknown system variable 'b'
(0 ms taken)

(35 row(s)returned)
(0 ms taken)

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 'END' at line 1
(0 ms taken)

求解,谢谢

[解决办法]
declare cur0 cursor for select pkid from T_VSM_SECPOLICY_USERGROUP; --这里为什么报错?

declare 必须在其它语句之前。
[解决办法]
delimiter //
CREATE PROCEDURE p8()
BEGIN
declare cur0 cursor for select pkid from T_VSM_SECPOLICY_USERGROUP;
DECLARE a INT;
DECLARE b INT;
SET a = 5;
SET b = 5;
END//

读书人网 >Mysql

热点推荐