各位大侠 本人刚接触 mysql 为啥报这样的错误啊 CREATE DEFINER=`root`@`%` FUNCTION `doRecruiterEduFilter`(`i_postReqId` VARCHAR(20)) RETURNS VARCHAR(100) CHARSET gbk
BEGIN
-- 1.根据招聘岗位要求ID,查询出年龄起止值
DECLARE v_ageBeg INT;
DECLARE v_ageEnd INT;
SELECT v_ageBeg = ageBeg FROM CSV_Empl_PostRequest WHERE postReqId=i_postReqId;
SELECT v_ageEnd = ageEnd FROM CSV_Empl_PostRequest WHERE postReqId=i_postReqId;
CREATE TABLE temp(appJobId VARCHAR(50));
    IF(v_ageBeg =-1)THEN
   BEGIN
         SET v_ageBeg = 0;
       END;
       END IF;
    IF(v_ageEnd =-1)THEN
   BEGIN
         SET v_ageEnd =120;
       END;
       END IF;
-- 做本地求职年龄筛选  
 SELECT a.appJobId INTO temp FROM CSV_Empl_InAppJobs a WHERE  age >=v_ageBeg AND age <=v_ageEnd;

RETURN '';
END;Error Code : 1327
Undeclared variable: temp

解决方案 »

  1.   

    SELECT a.appJobId INTO @temp FROM CSV_Empl_InAppJobs a WHERE age >=v_ageBeg AND age <=v_ageEnd;
      

  2.   

    SELECT a.appJobId INTO temp FROM CSV_Empl_InAppJobs a WHERE age >=v_ageBeg AND age <=v_ageEnd;
    要生成TEMP表?
    如是,你已经建立了此表 
    insert into temp
    SELECT a.appJobId FROM CSV_Empl_InAppJobs a WHERE age >=v_ageBeg AND age <=v_ageEnd;
      

  3.   

    CREATE DEFINER=`root`@`%` FUNCTION `doRecruiterEduFilter`(`i_postReqId` VARCHAR(20)) RETURNS VARCHAR(100) CHARSET gbk
    BEGIN
    -- 1.根据招聘岗位要求ID,查询出年龄起止值
    DECLARE v_ageBeg INT;
    DECLARE v_ageEnd INT;
    SELECT v_ageBeg = ageBeg FROM CSV_Empl_PostRequest WHERE postReqId=i_postReqId;
    SELECT v_ageEnd = ageEnd FROM CSV_Empl_PostRequest WHERE postReqId=i_postReqId;
    CREATE TABLE temp(appJobId VARCHAR(50));
       IF(v_ageBeg =-1)THEN
       BEGIN
            SET v_ageBeg = 0;
          END;
          END IF;
       IF(v_ageEnd =-1)THEN
       BEGIN
            SET v_ageEnd =120;
          END;
          END IF;
    -- 做本地求职年龄筛选 
    insert into temp select a.appJobId FROM CSV_Empl_InAppJobs a WHERE  age >=v_ageBeg AND age <=v_ageEnd;
     -- SELECT a.appJobId INTO temp FROM CSV_Empl_InAppJobs a WHERE  age >=v_ageBeg AND age <=v_ageEnd;

    RETURN '';
    END;