delimiter //
drop function childSearch; //
create function childSearch(_index int,_selected varchar(200))
returns varchar(20)
begin
declare sSQL varchar(500);
declare resultValues varchar(200);
set sSQL = 'select id from matrice order by id limit 1 into resultValues;'); --给resultValues赋值 然后返回
set @stmt = sSQL;
prepare s1 from @stmt;
execute s1;
deallocate prepare s1;
return resultValues; --返回resultValues
end//
delimiter ;
这样写就报错了,还觉得有点别扭!!!
请教高手指点,应该怎么写,!
drop function childSearch; //
create function childSearch(_index int,_selected varchar(200))
returns varchar(20)
begin
declare sSQL varchar(500);
declare resultValues varchar(200);
set sSQL = 'select id from matrice order by id limit 1 into resultValues;'); --给resultValues赋值 然后返回
set @stmt = sSQL;
prepare s1 from @stmt;
execute s1;
deallocate prepare s1;
return resultValues; --返回resultValues
end//
delimiter ;
这样写就报错了,还觉得有点别扭!!!
请教高手指点,应该怎么写,!
什么错误信息?
.
存储子程序不能包含任意SQL语句。在存储子程序中,禁止使用下述语句:
· SQL预处理语句(PREPARE、EXECUTE、DEALLOCATE PREPARE)。隐含意义:不能在存储子程序中使用动态SQL语句(其中,能够以字符串形式构造动态语句,然后执行它们)。从MySQL 5.0.13开始,对于存储程序放宽了该限制,但该限制仍适用于存储函数和触发程序。于是,delimiter //
drop function childSearch; //
create function childSearch(_index int,_selected varchar(200))
returns varchar(20)
begin
declare resultValues varchar(200);
select id from matrice order by id limit 1 into resultValues;
return resultValues; -- 返回resultValues
end//
delimiter ;在这里,不要使用execute语句,直接改为“