Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 错误1064(42000):在声明游标时_Mysql_Stored Procedures - Fatal编程技术网

Mysql 错误1064(42000):在声明游标时

Mysql 错误1064(42000):在声明游标时,mysql,stored-procedures,Mysql,Stored Procedures,我试图在MYSQLand中创建存储过程,并得到以下错误。 我在谷歌上搜索了一下,但没有找到解决方案。请帮我解决这个问题 DELIMITER // CREATE OR REPLACE PROCEDURE P_PROCESS_USER_STG ( OUT O_error_msg VARCHAR(3000), OUT O_status VARCHAR(3

我试图在MYSQLand中创建存储过程,并得到以下错误。 我在谷歌上搜索了一下,但没有找到解决方案。请帮我解决这个问题

DELIMITER // 
CREATE OR REPLACE PROCEDURE P_PROCESS_USER_STG ( OUT    O_error_msg         VARCHAR(3000),
                                                 OUT    O_status            VARCHAR(300),
                                                 IN     I_uploaded_by       INT (10))
BEGIN
   declare L_program_name            VARCHAR(100);

   declare L_login_id              INT(10)     ;
   declare L_password              VARCHAR(100);
   declare L_first_name            VARCHAR(100); 
   declare L_last_name             VARCHAR(100); 
   declare L_privilege_group_id    INT(10)     ;
   declare L_group_id              INT(10)     ;
   declare L_message               VARCHAR(100); 
   declare L_date_of_upload        TIMESTAMP   ;
   declare L_date_of_update        TIMESTAMP   ;
   declare L_uploaded_by           INT(10)     ;
   declare L_status                VARCHAR(10) ; 
   declare L_error_msg             VARCHAR(100), 

   declare L_finished              INT(1)        DEFAULT 0;

   declare C_user_stg CURSOR FOR 
      SELECT LOGIN_ID, 
             PASSWORD, 
             FIRST_NAME, 
             LAST_NAME, 
             PRIVILEGE_GROUP_ID, 
             GROUP_ID
        FROM uploaded_user_stg 
       where UPLOADED_BY = I_uploaded_by 
         and status in ( 'NEW' , 'UPDATE' );

   declare CONTINUE HANDLER 
       FOR NOT FOUND SET L_finished = 1;

   OPEN C_user_stg;

   get_user: LOOP

      FETCH C_user_stg INTO L_login_id          ,
                            L_password          ,
                            L_first_name        ,
                            L_last_name         ,
                            L_privilege_group_id,
                            L_group_id          ;

      IF L_finished = 1 THEN 
         LEAVE get_user;
      END IF;

 -- build email list
      CALL P_CREATE_USER ( L_message ,
                           L_status    ,
                           L_login_id  ,
                           L_password  ,
                           L_first_name,
                           L_last_name ,
                           L_privilege_group_id,
                           L_group_id  )

      UPDATE uploaded_user_stg 
         SET status         = L_status,
             error_msg      = L_message
             date_of_update = now();
       where login_id  = L_login_id;

   END LOOP get_email;

   CLOSE get_user;

END//

DELIMITER ;
我得到以下错误:

错误1064(42000):您的SQL语法有错误;检查 手动启用该选项,以便使用正确的语法near'

声明L_finished INT(1)默认为0

在第18行声明C_'


将此更改为:

declare L_error_msg             VARCHAR(100), 


从INT中删除参数(1),然后尝试运行。替换逗号。
declare L_error_msg             VARCHAR(100);