MySQL Error: 1337
Ich bin immer diese Fehlermeldung beim Versuch, erstellen Sie eine Prozedur in MySQL:
Error Code: 1337
Variable or condition declaration after cursor or handler declaration
sogar nach einer Menge Googlen fand ich keine Lösung zu meinem problem. Meine Vorgehensweise ist wie folgt:
DELIMITER //
CREATE PROCEDURE emp_dates(IN startDate DATE, IN endDate DATE)
BEGIN
DECLARE fromDt DATETIME;
DECLARE toDt DATETIME;
DECLARE done INT DEFAULT FALSE;
DECLARE employees CURSOR FOR SELECT empid FROM employees;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=TRUE;
DECLARE emp VARCHAR(20);
SET fromDt=startDate;
SET toDt=endDate;
OPEN employees;
WHILE fromDt<=toDt DO
REPEAT
FETCH employees INTO emp;
IF NOT done THEN
INSERT INTO new_attendance_2(attid,empid,dt) VALUES(DEFAULT,emp,fromDt);
END IF
UNTIL done END REPEAT;
SET fromDt=DATE_ADD(fromDt, INTERVAL 1 DAY);
LOOP
CLOSE employees;
END
DELIMITER ;
Zweck ist das erstellen einer Prozedur, die zwei Daten, die als Eingabe-und einfügen von Datensätzen in eine andere Tabelle für jeden Tag, der kommt dazwischen.
Jemand bitte helfen! Ich freue mich über jede kleine Hilfe. Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist offensichtlich beschweren sich über:
Also ich würde mich der Suche hier, wo Sie in der Tat Variablen deklarieren nach Sie den cursor und handler:
Wenn Sie ändern Sie Ihre Erklärungen so, es sollte okay sein:
Den Auftrag hat so zu werden, wie pro hier:
Müssen Sie re-order Ihre Erklärungen.
http://dev.mysql.com/doc/refman/5.1/en/cursors.html