MySQL创建存储过程查询赋值是报错提示语法错误

MySQL在创建存储过程的时候提示报错,

SELECT v_cs,fk_root_id INTO v_title,v_content FROM enterprise_authority;

SELECT count(1) INTO c FROM enterprise_authority ;

提示语法错误

/*************************************第一模块******************************/
BEGIN  -- 处理数据
	-- 定义结束标志
	DECLARE flag INT DEFAULT 0;
	DECLARE a varchar DEFAULT 01; 
    DECLARE b INT DEFAULT 1;
    DECLARE c INT DEFAULT 0; 	
	SELECT count(1) INTO c FROM enterprise_authority ;
	DECLARE pid VARCHAR(256); -- 每条记录的临时id 
	-- 获取循环范围
	DECLARE idList CURSOR FOR(SELECT v_cs,fk_root_id FROM enterprise_authority );
	-- 当idList循环完毕,设置结束标志flag为1
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
	-- 开始循环idList
	OPEN idList;
		REPEAT
		-- 拉取idList的值到pid
		FETCH idList INTO v_cs,fk_root_id;
		IF NOT flag THEN
			-- 更新数据
			 WHILE (b<=c) DO 
                  -- repeat 
                  -- select a; 
					WHILE (a <=idList.v_cs) DO 
                   
				   update dt_base_enterprise dt set dt.ent_data_range=concat('DR',a) where dt.ent_data_range like 'DR__' and idList.fk_root_id=dt.fk_root_id;
				  
                   SET a = a + 1; 
					END WHILE; 
                   -- select b; 
				   SET b = b + 1; 
             END WHILE; 

		END IF;
		-- 结束循环
		UNTIL flag END REPEAT;
	CLOSE idList;
	END;

END $$

/***************************第二模块******************************************/

BEGIN
-- 第一步 备份
/************************************存储处理权限数据问题,子机构大于2条****************************/
/*DROP   TABLE enterprise_authority;
CREATE TABLE enterprise_authority	
SELECT COUNT(fk_root_id) v_cs,fk_root_id,null authority FROM dt_base_enterprise a 
WHERE ent_data_range ='DR01' GROUP BY fk_root_id HAVING COUNT(fk_root_id)>=2 ;*/

/*************************************************************************/
--  按规则处理各类数据
      BEGIN  -- 处理数据
	-- 定义结束标志
	DECLARE flag INT DEFAULT 1;
	DECLARE a VARCHAR DEFAULT 01; 
	
	DECLARE v_title VARCHAR(30);  
	DECLARE v_content VARCHAR(32);  
	SELECT v_cs,fk_root_id INTO v_title,v_content FROM enterprise_authority;
	
	DECLARE b INT DEFAULT 1; -- 循环次数
	DECLARE v_count INT DEFAULT 0; 	
	WHILE (b<=v_number) DO 
		WHILE (flag <=v_title) DO 
                   
		UPDATE dt_base_enterprise dt SET dt.ent_data_range=CONCAT('DR',a) 
		WHERE dt.ent_data_range LIKE 'DR__' AND v_content=dt.fk_root_id;
				  
		SET v_title = v_title - 1;
		SET a = a + 1;  
		 IF LENGTH(a=1) THEN
		 CONCAT('0',a);
		 END IF ;
		END WHILE; 
		
	SET v_number = v_number - 1; 
        END WHILE; 

END $$

 

DELIMITER // 
BEGIN  -- 处理数据
	-- 定义结束标志
	DECLARE flag INT DEFAULT 0;
	DECLARE a VARCHAR DEFAULT 01; 
    DECLARE b INT DEFAULT 1;
    DECLARE c INT DEFAULT 0; 	
	SELECT COUNT(1) INTO c FROM enterprise_authority ;
	DECLARE pid VARCHAR(256); -- 每条记录的临时id 
	-- 获取循环范围
	DECLARE idList CURSOR FOR(SELECT v_cs,fk_root_id FROM enterprise_authority );
	-- 当idList循环完毕,设置结束标志flag为1
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag = 1;
	-- 开始循环idList
	OPEN idList;
		REPEAT
		-- 拉取idList的值到pid
		FETCH idList INTO v_cs,fk_root_id;
		IF NOT flag THEN
			-- 更新数据
			 WHILE (b<=c) DO 
                  -- repeat 
                  -- select a; 
					WHILE (a <=idList.v_cs) DO 
                   
				   UPDATE dt_base_enterprise dt SET dt.ent_data_range=CONCAT('DR',a) WHERE dt.ent_data_range LIKE 'DR__' AND idList.fk_root_id=dt.fk_root_id;
				  
                   SET a = a + 1; 
					END WHILE; 
                   -- select b; 
				   SET b = b + 1; 
             END WHILE; 
 
		END IF;
		-- 结束循环
		UNTIL flag END REPEAT;
	CLOSE idList;
	END;
 
END //

哪报错,错误截图发一下,试一下这个