본문 바로가기

개발노트/jQuery

Xml 노드 replace , xml node replace

문제 > 개인정보법이 강화되면서 주민번호를 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