繁体   English   中英

MySQL存储过程返回表

[英]MySQL stored procedure to return table

我正在尝试创建一个存储过程以从表中返回数据。 我正在使用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语法有错误; 在第3行的“ LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA SQL SECURITY DEFINER COMME”附近检查与您的MySQL服务器版本相对应的手册以使用正确的语法

有什么问题吗?

语法不正确。 您创建了一个FUNCTION,但是需要创建一个返回结果集的PROCEDURE。 试试这个代码-

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;
END

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM