create function sf_get_empsallist(dname varchar(100))
returns varchar(300)
begin
declare emplist varchar(300) default '';
declare flag int default 0 ;
declare name varchar(100);
declare sal int;
declare c1 cursor for
select ename,salary from emp join dept
on emp.deptid=dept.deptid
where deptname=dname;
declare continue handler for not found set flag=1;
open c1;
myloop: loop
fetch c1 into name,sal;
if flag=1 then
leave myloop;
end if;
set emplist=concat(emplist,',',name,'-',sal);
end loop;
return(substr(emplist,2));
close c1;
end
$$我所犯的错误是
错误代码: 1064。您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以获得在第4行附近使用的正确语法
我尽力把它解决了,但没能找到。
发布于 2018-05-20 13:05:15
delimiter $$
SET GLOBAL log_bin_trust_function_creators = 1;
create function sf_get_empsallist(dname varchar(100))
returns varchar(300)
begin
declare emplist varchar(300) default '';
declare flag int default 0 ;
declare name varchar(100);
declare sal int;
declare c1 cursor for
select ename,salary from emp join dept
on emp.deptid=dept.deptid
where deptname=dname;
declare continue handler for not found set flag=1;
open c1;
myloop: loop
fetch c1 into name,sal;
if flag=1 then
leave myloop;
end if;
set emplist=concat(emplist,',',name,'-',sal);
end loop;
return(substr(emplist,2));
close c1;
end
$$https://stackoverflow.com/questions/50432075
复制相似问题