프로 시저의 WHERE 절에서 IF/ELSE를 수행하려고하는데 작업이 올바르게 수행되지 않습니다. 내가 제대로 구성하고 있는지 확실하지 않습니다.PL/SQL : ORA-00933 : SQL 명령이 제대로 종료되지 않았습니다.
나는 PL/SQL을 얻을 : ORA-00933 : SQL 명령이 제대로에 종료되지 "p_job_year가 NULL가 아닌 경우,"
이 내가있어 무엇 :
WHERE
(val1s.val1 = p_val1 OR p_val1 IS NULL) AND
(UPPER(val2s.val2) LIKE UPPER(p_val2) OR p_val2 IS NULL) AND
(jp.row_top.job_type_id = p_job_type_id OR p_job_type_id IS NULL)
AND ntab.group_id = pgds.id(+)
AND jp.row_top.val1_id = val1s.id(+)
AND val1s.val2_id = val2s.id(+)
IF p_job_year IS NOT NULL THEN <<<<<<<< ERROR HERE
AND p_job_year = ntab.fiscal_year(+)
AND jp.jobload_year = p_job_year
AND jp.row_top.fiscal_year = p_job_year
ELSE
AND jp.jobload_year < TO_CHAR(ADD_MONTHS(CURRENT_DATE, -24),'YYYY')
AND jp.row_top.fiscal_year < TO_CHAR(ADD_MONTHS(CURRENT_DATE, -24),'YYYY')
END IF;
AND JP.VER = (select MAX(jp2.ver) from job_plans jp2
WHERE JP.ID_NUMBER = JP2.ID_NUMBER)
AND jack_work_pkg.get_last_jack_work_first_type(jp.id) != 1;
RETURN result_cur;
END summarize_work_data;
안녕하세요. 감사합니다 ... 약을 주려고합니다. –
감사합니다. ... 작동했습니다. –