SQL Server에서 이메일 주소 검증하기 > db

본문 바로가기

db

SQL Server에서 이메일 주소 검증하기

페이지 정보

작성자 서방님 댓글 0건 조회 13회 작성일 08-03-27 14:15

본문

SQL Server에서 이메일 주소 검증하기


SQL Server에서는 Regular Expression 기능을 제공하기 않기 때문에 정밀하게 이메일 주소를 검증 하기는 곤란합니다. SQL 사용자 함수를 이용해서 간단하게 이메일 주소를 검증합니다.


아래 함수는 한참 전에 모 사이트에서 받아 놓은 스크립트 인데 그 사이트가 어디 인지는 잘 모르겠습니다.
약간 변경하여 올립니다.


이메일 검증 사용자 정의 함수

CREATE FUNCTION ufn_EmailValidate (@email varChar(100))
RETURNS int
AS
BEGIN

DECLARE @invalChars varchar(5), @valid int, @badChar varchar(1), @atPos int, @periodPos int
SET @valid = 1
-- 이메일에 불필요한 문자를 @invalChars 변수에 추가합니다.
SET @invalChars = ' /:,;'

--이메일 주소 길이가 0인지 점검
IF len(ltrim(rtrim(@email))) = 0
    SET @valid = 0
ELSE
    --이메일 안에 부적절한 문자가 있는지 찾기 위해 반복
    WHILE len(@invalChars) > 0
    BEGIN
        -- 이메일에서 불필요한 문자를 @badChar 변수에 하나씩 담고 검사한다.
        SET @badChar = substring(@invalChars, 1, 1)
        --부적절한 문자를 발견하면 리턴 값 0으로 설정
        IF (charindex(@badChar, @email) > 0)
            SET @valid = 0
        -- 불필요한 문자를 하나씩 없앤다
        SET @invalChars = replace(@invalChars, @badChar, '')
    END

    [email protected]문자가 있는지 점검
    SET @atPos = charindex('@', @email, 1)
    IF @atPos = 0
        SET @valid = 0

    --첫번째 '@' 이후에 또 다른 '@' 문자가 있는지 점검
    IF charindex('@', @email, @atPos+1) > 0
        SET @valid = 0

    -- '@' 문자 다음에 '.' 문자가 있는지 검사
    SET @periodPos = charindex('.', @email, @atPos)
    IF @periodPos = 0
        SET @valid = 0
    -- 이메일 길이 비교
    IF (@periodPos+3) > len(@email)
        SET @valid = 0

RETURN (@valid)

END




함수 실행

-- 특정 이메일 주소 검증
SELECT dbo.ufn_EmailValidate('[email protected]')

-- 테이블에서 잘못된 이메일 추출
SELECT * FROM Table_Name WHERE dbo.ufn_EmailValidate(Email field) = 0

-- 잘못된 이메일 주소 삭제
DELETE FROM Table_Name WHERE dbo.ufn_EmailValidate(Email field) = 0


댓글목록

등록된 댓글이 없습니다.

Total 447건 1 페이지
게시물 검색

회원로그인

접속자집계

오늘
299
어제
446
최대
592
전체
38,817

그누보드5
Copyright © seobangnim.com All rights reserved.
자바스크립트를 활성화 하세요![ 브라우저에서 자바스크립트를 활성화하는 방법 ]