문제 > 개인정보법이 강화되면서 주민번호를 DB에 쌓지 못하도록 되었습니다. 하지만 인터페이스할때는 필요합니다.
그래서 DB에 쌓인 데이터를 배치로 당일 지워주기로 하였습니다.
처음엔 replace로 하려했지만 TEST라는 노드가 여러 N개로 쌓이게 됩니다.
Replace로 하면 앞에 주민번호만 변경됩니다.
해결책>
구글링하던 도중 김영대님께서 만드신 함수를 공유하여 변경하였습니다.
함수를 등록 후, 아래와같이 정규식을 사용하여 사용해주세요.
update WS.TEST..TEST_TEST1
set TESTCONTEXT = dbo.GetRegExReplace(TESTCONTEXT ,'[0-9,-]</JUMINNUMBER>', '')
로 업데이트를 해주시면 JUMINNUMBER로 된 노드를 전부 리플레이스 해줍니다.
USE TEST
GO
/****** Object: UserDefinedFunction [dbo].[GetRegExReplace] ******/
SET ANSI_NULLS ON
GO
SET
QUOTED_IDENTIFIER ON
GO
--
=============================================
--
Author: 김영대
-- Create date:
2016-05-12
--
Description: RegEx Replace 역할 함수
-- =============================================
ALTER FUNCTION
[dbo].[GetRegExReplace]
(
@TargetText
VarChar(MAX), -- 원본 문자열 값
@Expression
VarChar(80),-- 정규 식 형태 문자열
@ReplaceValue
VarChar(80) -- 교체할 문자
)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @ReturnValue VARCHAR(MAX) = @TargetText;
IF ISNULL(@ReturnValue,'') = ''
RETURN @ReturnValue;
WHILE 1 =1
BEGIN
IF PATINDEX('%' + @Expression + '%' , @ReturnValue) = 0
BREAK;
SET @ReturnValue = STUFF(@ReturnValue,PATINDEX('%' + @Expression + '%' , @ReturnValue),1,@ReplaceValue)
END
RETURN @ReturnValue
END
'개발노트 > jQuery' 카테고리의 다른 글
주민번호 뒷자리 자동 0으로 채우기 (0) | 2018.07.07 |
---|---|
isNaN 란?? (0) | 2017.12.06 |
foreach문이란? foreach 응용 (0) | 2016.12.06 |