2013-11-28 2 views
0

테이블에서 데이터를 반환하는 저장 프로 시저를 만들려고합니다. MySQL을 사용하고 있습니다. 이 코드입니다 :테이블을 반환하는 MySQL 저장 프로 시저

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

것은 무엇 잘못 될 수 :

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 

하지만 다음과 같은 오류가 절차를 저장하려고 할 때?

답변

1

구문이 올바르지 않습니다. 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 
관련 문제