根据传的参数做逻辑处理并返回数值
CREATE OR REPLACE FUNCTION F_GET_DATE(V_START_DATE IN VARCHAR2,
V_END_DATE IN VARCHAR2)
RETURN NUMBER IS
/**
* 根据传的参数做逻辑处理并返回数值
* 例如:V_START_DATE的值:2021-06-03 15:43:56 V_END_DATE的值:2021-06-04 11:36:21
*/
RESULT NUMBER(10,2):=0;
BEGIN
IF NVL(V_START_DATE, '*') = '*' OR NVL(V_END_DATE, '*') = '*' THEN
RAISE_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 RESULT
FROM 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 RESULT
FROM dual;
RETURN(RESULT);
END F_GET_CODE;