저장된 함수를 만들려고하지만 오류가 발생하여 스크립트가 제대로 작동하지 않습니다. 오류가없는 것으로 생각됩니다. 하지만이 오류가 왜 나는지 모르겠다.내 MySQL 스크립트 구문에 오류가 있습니다.
1064 - SQL 구문에 오류가 있습니다.
: 이
그리고 이것은 내 스크립트 'numBon =이 SELECT codeArt, LigneBonEntrée FROM QTE위한 DECLARE의 (CR1)의 커서' 근처를 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인
DELIMITER $$
CREATE [email protected] FUNCTION verifierQteDemandee(numBonIn INT) RETURNS BOOLEAN
BEGIN
DECLARE numLignesBonEntrée, numLignesBonSortie INTEGER;
DECLARE codeArtLigneBonEntrée, codeArtLigneBonSortie, qteLigneBonEntrée, qteLigneBonSortie INTEGER;
DECLARE no_more_rows BOOLEAN;
DECLARE qteArticle INTEGER;
DECLARE test BOOLEAN DEFAULT TRUE;
SET numLignesBonEntrée = (SELECT COUNT(*) FROM LigneBonEntrée WHERE numBon = numBonIn);
SET numLignesBonSortie = (SELECT COUNT(*) FROM numLignesBonSortie WHERE numBon = (SELECT estLieA FROM LigneBonEntrée WHERE numBon = numBonIn));
IF numLignesBonEntrée <> numLignesBonSortie THEN
SET test = FALSE;
ELSE
DECLARE cr1 CURSOR FOR SELECT codeArt, qte FROM LigneBonEntrée WHERE numBon = numBonIn ORDER BY codeArt ASC;
DECLARE cr2 CURSOR FOR SELECT codeArt, qte FROM LigneBonSortieWHERE numBon = (SELECT estLieA FROM LigneBonEntréeWHERE numBon = numBonIn) ORDER BY codeArt ASC;
DECLARE CONTINUE HANDLER FOR NOT FOUND
SET no_more_rows = TRUE;
OPEN cr1;
OPEN cr2;
the_loop: LOOP
FETCH cr1 INTO codeArtLigneBonEntrée, qteLigneBonEntrée;
FETCH cr2 INTO codeArtLigneBonSortie, qteLigneBonSortie;
IF no_more_rows THEN
CLOSE cr;
LEAVE the_loop;
END IF;
IF codeArtLigneBonEntrée <> codeArtLigneBonSortie THEN
SET test = FALSE;
END IF;
IF qteLigneBonEntrée <> qteLigneBonSortie THEN
SET test = FALSE;
END IF;
END LOOP the_loop;
END IF;
RETURN test;
END$$
DELIMITER ;
감사합니다. 문제가 있습니다. –
이런 일이 발생합니다. –