admin管理员组

文章数量:1599543

创建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