根据传的参数做逻辑处理并返回数值
CREATE OR REPLACE FUNCTION F_GET_DATE(V_START_DATE IN VARCHAR2,V_END_DATE IN VARCHAR2)RETURN NUMBER IS/*** 根据传的参数做逻辑处理并返回数值* 例如:V_START_DATE的值:-06-03 15:43:56 V_END_DATE的值:-06-04 11:36:21*/RESULT NUMBER(10,2):=0; BEGINIF NVL(V_START_DATE, '*') = '*' OR NVL(V_END_DATE, '*') = '*' THENRAISE_APPLICATION_ERROR(-20002, '(开始时间和结束时间都不能为空)');END IF; -- 计算开始时间到结束时间的差 单位为天数 保留2位数SELECT round((TO_DATE(V_END_DATE,'yyyy-MM-dd hh24:mi:ss')-TO_DATE(V_START_DATE,'yyyy-MM-dd hh24:mi:ss')),2)INTO RESULTFROM dual;RETURN(RESULT);END F_GET_DATE;
根据传的参数做逻辑处理并返回字符串
CREATE OR REPLACE FUNCTION F_GET_CODE(V_START IN VARCHAR2)RETURN VARCHAR2 IS/*** 根据传的参数做逻辑处理并返回字符串*/RESULT VARCHAR2(30); BEGIN-- 根据传的参数作为开头字符串并拼接17位的时间戳SELECT V_START || TO_CHAR(SYSDATE, 'yyyyMMddhh24missSSS')INTO RESULTFROM dual;RETURN(RESULT);END F_GET_CODE;