我正在尝试创建一个存储过程,以便从表中返回数据。我在用MySQL。这是代码:
CREATE DEFINER=`imswms`@`10.0.90.%` FUNCTION `sp_daily_numbers_by_man_and_prod`(`man` VARCHAR(100), `startDate` DATETIME, `endDate` DATETIME)
RETURNS SET
LANGUAGE SQL
NOT DETERMINISTIC
READS SQL DATA
SQL SECURITY DEFINER
COMMENT ''
BEGIN
select * from dailynumbersdetails
where dailynumbersdetails.PostDate >= startDate
and dailynumbersdetails.PostDate < endDate
and dailynumbersdetails.Manufacturer = man
group by dailynumbersdetails.PartNumber;
END但是,当试图保存该过程时,我会得到以下错误:
SQL错误(1064):您的SQL语法出现了错误;请检查与您的MySQL服务器版本相对应的手册,以便在第3行使用接近“LANGUAGE非确定性读取SQL数据安全定义器COMME”的正确语法。
有什么不对的?
发布于 2013-11-28 15:31:03
语法不正确。您创建了一个函数,但需要创建一个返回结果集的过程。试试这个密码-
CREATE DEFINER = 'imswms'@'10.0.90.%'
PROCEDURE `sp_daily_numbers_by_man_and_prod` (`man` VARCHAR(100), `startDate` DATETIME, `endDate` DATETIME)
SQL SECURITY DEFINER
COMMENT ''
BEGIN
SELECT * FROM dailynumbersdetails
WHERE dailynumbersdetails.PostDate >= startDate
AND dailynumbersdetails.PostDate < endDate
AND dailynumbersdetails.Manufacturer = man
GROUP BY dailynumbersdetails.PartNumber;
ENDhttps://stackoverflow.com/questions/20267732
复制相似问题