2014-04-24 1 views
1

프로 시저를 만들려고 할 때 그 오류가 발생합니다. 나는 무엇이 실패하는지 알지 못한다. 누군가가 나보다 같은 오류를 가지고 있다면 많이 찾는다. 그러나 대개 구분 기호로 착각한다. 나는 그것이 맞다고 생각한다.프로 시저를 만들 때 SQL 구문에 오류가 있습니다. MYSQL

"SQL 문에서 오류가 발생했습니다. MySQL 서버 버전에 해당하는 설명서에서 올바른 구문을 확인하여 근처에서 사용하십시오) SELECT SUM (robatori.quantitat_robada) FROM robatori WHERE param1 = jugador_lla 'at line 1 "

내 쿼리는 다음입니다 :

DELIMITER // 
CREATE PROCEDURE robatoris (IN param1 VARCHAR) 
SELECT SUM(robatori.quantitat_robada) FROM robatori WHERE param1=jugador_lladre; 
// 
DELIMITER ; 

감사합니다 여러분 모두, 그 여기 내 첫 번째 질문입니다. :)

답변

0

VARCHAR 입력 매개 변수의 길이가 누락되었습니다. 다음과 같은

변경이 :

DELIMITER // 
CREATE PROCEDURE robatoris (IN param1 VARCHAR(255)) 
    SELECT SUM(robatori.quantitat_robada) 
    FROM robatori 
    WHERE param1=jugador_lladre; 
// 
DELIMITER ; 

당신이 실행에만 문을 가지고

BEGIN - END 블록은 선택 사항이었다.
그러나 모든 경우에 연습하는 것이 좋습니다.

DELIMITER // 
CREATE PROCEDURE robatoris (IN param1 VARCHAR(255)) 
BEGIN 
    SELECT SUM(robatori.quantitat_robada) 
    FROM robatori 
    WHERE param1=jugador_lladre; 
END; 
// 
DELIMITER ; 
+0

감사합니다. 멍청한 실수 xD. 당신은 정말로 빨리 대답했습니다. 감사! – Gobli

0

BEGIN 및 END를 추가하십시오. 텍스트 유형 사용 :

DELIMITER // 
CREATE PROCEDURE robatoris (IN param1 TEXT) 
BEGIN 
    SELECT SUM(robatori.quantitat_robada) 
    FROM robatori 
    WHERE param1=jugador_lladre; 
END// 
DELIMITER ; 
관련 문제