DBA/Oracle

일자 정합성 체크 Function

da-dba 2024. 4. 8. 10:46
CREATE OR REPLACE FUNCTION FTDATA.DAY_YN_CHK(
    PI_STR_YMD   IN   VARCHAR2)
    RETURN VARCHAR2
IS
    L_YMD             DATE;
    PO_ERRMSG         VARCHAR2(400);
    E_INVALID_MONTH   EXCEPTION;
    E_INVALID_DAY     EXCEPTION;
    PRAGMA EXCEPTION_INIT(E_INVALID_MONTH, -1843);
    PRAGMA EXCEPTION_INIT(E_INVALID_DAY, -1847);
BEGIN
    BEGIN
        L_YMD    := TO_DATE(PI_STR_YMD, 'YYYYMMDD');
    EXCEPTION
        WHEN E_INVALID_MONTH THEN
            PO_ERRMSG    := 'N';
            RETURN PO_ERRMSG;
        WHEN E_INVALID_DAY THEN
            PO_ERRMSG    := 'N';
            RETURN PO_ERRMSG;
        WHEN OTHERS THEN
            PO_ERRMSG    := 'N';
            RETURN PO_ERRMSG;
    END;
    PO_ERRMSG    := 'Y';
    RETURN PO_ERRMSG;
END;