写了一个计算给定时间的上周或上月或上一个季度的数据量的函数,可是在创建函数的时候总是报编译错误,麻烦高手帮忙看看,万分感谢!!函数如下:
CREATE OR REPLACE FUNCTION LAST_WORK_COUNT(field_value IN VARCHAR2,dateBegin IN VARCHAR2,dateEnd IN VARCHAR2)
RETURN  NUMBER IS 
N_CNT       NUMBER:=0;
g_DATEBEGIN DATE;
g_DATEEND DATE;

g_DATEBEGIN:=TO_DATE(dateBegin,'YYYYMMDD');
g_DATEEND:=TO_DATE(dateEnd,'YYYYMMDD');

BEGIN
N_CNT:=TRUNC(g_DATEEND)-TRUNC(g_DATEBEGIN);

IF N_CNT<7 THEN
g_DATEBEGIN:=g_DATEBEGIN-7;
g_DATEEND=g_DATEEND-7;
ELSE IF N_CNT<31 THEN
g_DATEEND:=g_DATEBEGIN-1;
g_DATEBEGIN:=ADD_MONTHS(g_DATEBEGIN,-1);
ELSE
g_DATEEND:=g_DATEBEGIN-1;
g_DATEBEGIN:=ADD_MONTHS(g_DATEBEGIN,-3);
END IF;
END IF;

N_CNT:=0;
SELECT COUNT(*) 
INTO N_CNT
FROM
WORK_COMMUNITY 
WHERE 
KNOW_NO=field_value 
AND CHECK_DATE BETWEEN g_DATEBEGIN AND g_DATEEND 
AND STATUS_FLAG<>'C' 
AND STATUS_FLAG<>'J' 
AND STATUS_FLAG<>'A'
AND STATUS_FLAG<>'S';

RETURN N_CNT;
END;