admin管理员组文章数量:1599529
创建mysql自定义函数时,提示错误[Err] 1337 - Variable or condition declaration after cursor or handler declaration
原因:定义变量必须放在游标之前,而我放在了游标后面,所以导致此错误
解决:变量定义放在游标定义之前
#drop function project;
create function project() returns VARCHAR(300)
begin
DECLARE proName VARCHAR(300);
DECLARE proNo VARCHAR(50);
DECLARE s int DEFAULT 0;
DECLARE ProjCRowCur CURSOR FOR select _name,_no from techmanage.tech_project; #我的游标定义在此处
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1;
DECLARE pid int; #错误出现在这里,我把这个变量定义在了游标的后面
OPEN ProjCRowCur;
SET proName='';
SET proNo='';
FETCH ProjCRowCur INTO proName,proNo;
while s<>1 DO
select id INTO pid from techmanage.nodes_hierarchy where name = proName;
IF pid<>null THEN
insert into smart_quality.nodes_hierarchy (name) values (proName);
END IF;
FETCH ProjCRowCur INTO proName,proNo;
END WHILE;
CLOSE ProjCRowCur;
return proName;
end
.....
版权声明:本文标题:mysql 1337_mysql存储过程(自定义函数)1337-Variable or condition declaration after cursor or handler declaratio... 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1728324618a1154274.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论