1).声明
create or replace
function GET_REPORT_EMP_COUNT(IN_DEPTNO varchar2,
IN_EMP_OFFICE varchar2,
IN_DATUM_DATE varchar2,
IN_POST_NO varchar2, --职级名称
IN_DEPT_DISTINGUISH_NO varchar2
)
RETURN VARCHAR2 IS
V_PARAM_VALUE VARCHAR2(30);
然后里面的架构都是
BEGIN
END
这种包含。
里面的判断
if IN_EMP_OFFICE = '15120' then --离职
begin
SELECT A INTO V_A FROM DUAL;
END;
ELS IF --否则
ELSE --最后否者的话
END;
END IF;
注意一点的是,如果传过来的参数是空‘’ 就要用 IS NULL判断。
2)拼写sql语句执行
EXECUTE IMMEDIATE
' SELECT AR_SHIFT010.DATATYPE ' ||
' FROM AR_SHIFT010, AR_SCHEDULE_' || IN_CPNY_ID || ' AR_SCHEDULE ' ||
' WHERE AR_SHIFT010.SHIFT_NO = AR_SCHEDULE.SHIFT_NO ' ||
' AND AR_SCHEDULE.PERSON_ID = :PERSON_ID ' ||
' AND TO_DATE(AR_SCHEDULE.AR_DATE_STR,''YYYY-MM-DD'') = TO_DATE(:AR_DATE_STR,''YYYY-MM-DD'') '
INTO VAR_DATETYPE
USING IN_PERSON_ID, IN_AR_DATE_STR ;
3)根据测试,打印出值
DBMS_OUTPUT.PUT_LINE(VAR_SQL_STR);