[오라클] 정규식 REGEXP_LIKE 이메일 주소 유효성 검사하기 (Validate Email Address)
지난 글에서 오라클 정규식 REGEXP_LIKE의 정의 및 패턴, 매개변수에 대해서 다뤘습니다. 이번에는 이메일 주소의 유효성을 검사하기 위해 REGEXP_LIKE 함수를 사용하는 다양한 방법을 소개하고자 합니다.
↓ ↓ 이전 글 ↓ ↓
1. 기본적인 이메일 주소 형식: 이메일 주소가 기본적인 형식을 따르는지 확인하기
이메일 주소가 올바른 형식인지 확인하기 위해 패턴을 사용합니다. 패턴은 이메일 주소의 각 부분을 검사하고, '@'와 '.' 문자를 올바르게 사용하는지 확인합니다.
SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$');
2. 도메인 이름의 최소 길이: 이메일 주소의 도메인 이름이 최소 길이를 충족하는지 확인
이메일 주소의 도메인 이름이 최소 2자에서 4자까지의 길이를 가져야 함을 확인하기 위해 패턴을 사용합니다.
SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,4}$');
3. 특정 도메인만 허용: 특정 도메인만을 허용하고 다른 도메인은 거부하기
이메일 주소의 도메인이 [naver] [daum] [gmail] 중 하나인지 확인하기 위해 패턴을 사용합니다.
SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@(naver|daum|gmail).[A-Za-z]{2,}$');
4. 특정 도메인 제외: 특정 도메인을 제외하고 다른 도메인만 허용하기
이메일 주소의 도메인이 [naver.com] [daum.net] [gmail.com] 이 아닌지 확인하기 위해 패턴을 사용합니다.
SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@(?!naver.com|daum.net|gmail.com)[A-Za-z0-9.-]+.[A-Za-z]{2,}$');
5. 대소문자 구분 없이 검사: 이메일 주소의 대소문자를 구분하지 않고 검사하기
이메일 주소 검사시 REGEXP_LIKE 함수의 세 번째 매개변수로 i 를 사용하여 대소문자를 구분하지 않고 검사합니다.
SELECT
USER_NAME, EMAIL
FROM USERS
WHERE REGEXP_LIKE(EMAIL, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}$', 'i');
이외에도 REGEXP_LIKE 함수를 사용하여 다양한 이메일 주소 유효성 검사 방법을 구현할 수 있습니다.
번외) REGEXP_LIKE 이메일 주소 확인 함수로 만들어서 사용하기
CREATE OR REPLACE FUNCTION VALIDATE_EMAIL_ADDRESS(IN_EMAIL IN VARCHAR2) RETURN number IS
BEGIN
IF REGEXP_LIKE(IN_EMAIL, '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$') THEN
-- 형식이 맞는 경우
RETURN 1;
ELSE
--형식이 틀린 경우
RETURN 0;
END IF;
END;
=> 이메일 주소 확인 함수 조건절에서 사용하기
--실제 적용시
SELECT
USER_NAME
FROM USERS
WHERE VALIDATE_EMAIL(EMAIL) = 1;
--테스트용
SELECT
USER_NAME
FROM ( select 'trivia-korea@tistory.com' as email from dual )
WHERE VALIDATE_EMAIL(EMAIL) = 1;
#오라클 REGEXP_LIKE 이메일 주소 확인 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 #오라클 REGEXP_LIKE 이메일 주소 형식 확인 #오라클 REGEXP_LIKE 이메일 주소 유효성 체크 #오라클 REGEXP_LIKE 이메일 주소 유효성 검증 #오라클 REGEXP_LIKE 이메일 주소 패턴 확인 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 정규식 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 방법 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 드 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 예제 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 SQL #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 함수 #오라클 REGEXP_LIKE 이메일 주소 유효성 검사 패턴
[오라클] 정규식 REGEXP_LIKE 전화번호 유효성 검사 (Validate Phone Number)
'PC · IT · DB > Oracle' 카테고리의 다른 글
[오라클] 테이블스페이스 사용 용량, 여유공간 조회 쿼리 (0) | 2023.09.01 |
---|---|
[오라클] 정규식 REGEXP_LIKE 전화번호 유효성 검사 (Validate Phone Number) (0) | 2023.08.30 |
[오라클] 정규식 REGEXP_LIKE 정의 및 패턴, 매개변수 (REGEXP_LIKE definition and pattern, parameters) (0) | 2023.08.28 |
[오라클] 오라클 쿼리 튜닝 예시 (Oracle Query Tuning Example) (0) | 2023.08.27 |
[오라클] 오라클 실행 계획 Cost &CPU, 플랜 보는법 (Oracle Explain plan Cost & CPU) (0) | 2023.08.24 |