반응형
DB에 데이터 작업을 하다 보면, 연월, 연월일, YYYYMM, YYYYMMDD 등과 같은 날짜 형식에 맞지 않는 데이터가 들어올 경우 제대로 된 함수나 프로시저 등이 작동되지 않을 수 있다. 그래서 오라클(Oracle)에서 특정 날짜 데이터를 받았을 때, 날짜 형식에 맞는 데이터인지 Validation 체크를 위한 함수에 대해 기록한다.
목차
1. FUNCTION을 이용한 날짜 체크
2. 예제
1. FUNCTION을 이용한 날짜 체크
오라클 DB에서 FUNCTION을 만들어서 날짜에 대한 Validation을 하는 경우다.
CREATE OR REPLACE FUNCTION LHSWMS.F_TYPE_DATE(P_DATE VARCHAR2, P_FORMAT VARCHAR2)
RETURN NUMBER
IS
V_DATE DATE;
BEGIN
V_DATE := TO_DATE(P_DATE, P_FORMAT);
RETURN 1;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;
문자열 P_DATE와 형식 P_FORMAT 파라미터 값을 받아서, DATE 타입의 변수 V_DATE에 TO_DATE 함수를 사용하여 날짜 형식 체크를 하는 FUNCTION입니다. 그래서, 날짜 형식에 정상적으로 충족이 된다면 1을 리턴하고, 날짜 형식에 충족이 되지 않는다면 0을 리턴합니다.
2. 예제
1) 연월일
아래와 같이, 연도, 월, 일 날짜 형식인 'YYYYMMDD' 형태에 대한 체크다. 20230502 데이터의 경우는 1이 리턴이 되고, 20230532 데이터의 경우에는 0을 리턴한다.
SELECT F_GET_TYPE_DATE('20230502', 'YYYYMMDD')
FROM DUAL; -- RETURN 1
SELECT F_GET_TYPE_DATE('20230532', 'YYYYMMDD')
FROM DUAL; -- RETURN 0
2) 연월
아래와 같이, 연도, 월 날짜 형식인 'YYYYMM' 형태에 대한 체크다. 202305 데이터의 경우는 1이 리턴이 되고, 202313 데이터의 경우에는 0을 리턴한다.
SELECT F_GET_TYPE_DATE('202305', 'YYYYMM')
FROM DUAL; -- RETURN 1
SELECT F_GET_TYPE_DATE('202313', 'YYYYMM')
FROM DUAL; -- RETURN 0
반응형
'IT > Oracle' 카테고리의 다른 글
[Oracle] 오라클(Oracle) 다중컬럼 IN 사용하는 방법 (0) | 2023.06.08 |
---|---|
[Oracle] 오라클(Oracle) NOT NULL과 DEFAULT의 관계 (0) | 2023.06.03 |
[Oracle] 오라클(Oracle) 트리거 삭제하는 방법 (0) | 2023.06.02 |
[Oracle] 오라클(Oracle) ORA-02287: 시퀀스 번호는 이 위치에 사용할 수 없습니다 해결 방법 (0) | 2023.05.17 |
[Oracle] 오라클(Oracle) 시퀀스(SEQUENCE) 생성하는 방법 (0) | 2023.04.27 |
[Oracle] 오라클(Oracle) 테이블 생성 할 때의 추가 속성(SEGMENT CREATION IMMEDIATE/DEFERRED) (0) | 2023.04.26 |
[Oracle] 오라클(Oracle) 스케쥴러 잡(SCHEDULER_JOB)에 대한 정리 (0) | 2023.04.20 |
[Oracle] 오라클(Oracle) DB LINK 사용하는 방법 (0) | 2023.04.19 |
최근댓글