set不能写在Declare前;

gungod 2011-04-06 05:01:34
最近写存储过程的时候,
用到了游标(光标),
执行的时候老提示我,定义游标的行语法出错。
准备排除才发现,是因为这句前使用的SET子句;

根据处理流程,我的解决办法有2个:
1.SET 写到 DECLARE子句后面;
2.把DECLARE子句部分包含到BEGIN...END中。

有不对的地方望大家指正。


...全文
109 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
gungod 2011-04-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 rucypli 的回复:]
declare和set有什么关系 ,贴出你的脚本
[/Quote]
我这样定义的
DECLARE x INT default 0;
...
if ... then
begin
set x =1;
DECLARE cur1 CURSOR FOR ....;
...
end;

执行后,就提示DECLARE cur1 CURSOR FOR处语法不对。
哈哈。以前在SQL SERVER下是没问题的, 看了MYSQL比较严格点。

ACMAIN_CHM 2011-04-06
  • 打赏
  • 举报
回复
这是语法的定义,没什么理由,按手册上的语法实现就行了。


新手接触MYSQL多看看它的手册。
rucypli 2011-04-06
  • 打赏
  • 举报
回复
declare和set有什么关系 ,贴出你的脚本
WWWWA 2011-04-06
  • 打赏
  • 举报
回复
定义游标的语句要放在最前面

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧