# Error1064 sql Синтаксис DECLARE и CURSOR FOR SELECT - PullRequest
0 голосов
/ 28 сентября 2018

Я продолжаю получать эту ошибку: "ОШИБКА 1064: у вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, для правильного синтаксиса для использования рядом с '(ORDER BY processdate DESC) rwn, s.serno ОТ ord_success s ГДЕ в строке 5 "

CREATE  PROCEDURE move_sucess_order(p_gwserno DOUBLE, p_mindate DOUBLE, p_keepsize DOUBLE)
BEGIN
DECLARE NOT_FOUND INT DEFAULT 0;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET NOT_FOUND = 1;
   DECLARE rec CURSOR FOR SELECT serno FROM ( SELECT row_number() OVER(ORDER BY processdate DESC) rwn,  s.serno
       FROM ord_success s WHERE gatewayserno = p_gwserno AND processdate < p_mindate
       ) t WHERE rwn > p_keepsize; OPEN rec;
 FETCH rec INTO;
 WHILE NOT_FOUND=0
 DO
 INSERT INTO ord_success_arc
    SELECT serno, gatewayserno, targetserno, meterpointserno, mastermessagetype,
         messagetype, rawcontent, createdate, createuser, createtransactionid, requesttype, processtype,
         lastexecutorendpoint, orderstatus, bidirectedserno, externalherefno, processtarget, isasync, processdate,
         lpstartdate, lpenddate, updatedate, updateuser, updatetransactionid, recordstatus, externalsdmsource, externalsdmserno
     FROM ord_success WHERE serno = rec.serno;
     DELETE FROM ord_success WHERE serno = rec.serno;

    FETCH  INTO;
    END WHILE;
    CLOSE ;

Я новичок в MySQL.Я проверил руководство MySQL глубоко.Но я не мог понять, как я могу решить эту проблему.Спасибо за любую помощь.

...