Oracle
오라클 정규식 활용
스마트큐브
2016. 11. 7. 16:12
-- 날짜 형식 체크 정규식
ymd 는 YYYYMMDD 형식의 데이터 필드
select ymd,
(CASE WHEN ymd IS NULL THEN 'NULL'
WHEN NOT REGEXP_LIKE(ymd, '^[0-9]{4}(((0[13578]|(10|12))(0[1-9]|[1-2][0-9]|3[0-1]))|(02(0[1-9]|[1-2][0-9]))|((0[469]|11)(0[1-9]|[1-2][0-9]|30)))$') THEN '날짜형식이 틀림'
WHEN NOT REGEXP_LIKE(SUBSTR(ymd, 1, 4), '((1[6-9]|[2-9]\d)([02468][48]|[2468][048]|[13579][26]))|((16|[2468][048]|[3579][26])00)') AND SUBSTR(ymd, 5, 2) = '02' AND SUBSTR(ymd, 7, 2) = '29' THEN '평년인데 2월달이 29일임'
ELSE '정상'
END) AS DATE_CHECK
from 테이블 ;
출처
http://blog.daum.net/_blog/BlogTypeView.do?blogid=0ePSf&articleno=52