CREATE OR REPLACE FUNCTION ISDATE8( P_DATE IN VARCHAR2, D_FORMAT IN VARCHAR2 DEFAULT 'YYYYMMDD', P_ERR IN VARCHAR2 DEFAULT '99991231' )
RETURN VARCHAR2
IS
BEGIN
IF LENGTH(P_DATE) < 8 THEN
RETURN P_ERR;
ELSE
RETURN TO_CHAR(TO_DATE(P_DATE,D_FORMAT),D_FORMAT);
END IF;
EXCEPTION
WHEN OTHERS THEN BEGIN
RETURN P_ERR;
END;
END;
/
RETURN VARCHAR2
IS
BEGIN
IF LENGTH(P_DATE) < 8 THEN
RETURN P_ERR;
ELSE
RETURN TO_CHAR(TO_DATE(P_DATE,D_FORMAT),D_FORMAT);
END IF;
EXCEPTION
WHEN OTHERS THEN BEGIN
RETURN P_ERR;
END;
END;
/