2013-11-28 3 views
0

Я пытаюсь создать хранимую процедуру для возврата данных из таблицы. Я использую MySQL. это код: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 Error (1064): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'LANGUAGE SQL NOT DETERMINISTIC READS SQL DATA SQL SECURITY DEFINER COMME' at line 3

Что может быть не так?

ответ

1

Синтаксис неверен. Вы создали FUNCTION, но вам необходимо создать ПРОЦЕДУРУ, которая возвращает набор результатов. Используйте этот код -

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 
Смежные вопросы