DB, SQL
[MSSQL] 커스텀 함수 - 비숫자 제거 함수
isaac.kim
2024. 9. 6. 19:40
728x90
반응형
[MSSQL] 커스텀 함수 - 비숫자 제거 함수
유지 보수, 개발을 하다가 Java/Spring에 있는 소스를 MSSQL 프로시저로 옮겨야 할 일이 생겼다.
Java/Spring에선 동작하던 정규식 사용이 MSSQL에서 정규식 적용이 안되었다.
따라서, 숫자가 아닌 비숫자를 모두 제거하는 커스텀 함수를 다음과 같이 만들어 사용하고 있다.
CREATE FUNCTION RemoveNonDigits
(
@input NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @result NVARCHAR(MAX) = ''
DECLARE @i INT = 1
WHILE @i <= LEN(@input)
BEGIN
IF SUBSTRING(@input, @i, 1) LIKE '[0-9]'
BEGIN
SET @result = @result + SUBSTRING(@input, @i, 1)
END
SET @i = @i + 1
END
RETURN @result;
END
GO
간단한 작업에는 Java/Spring단에서 코드를 작성하는 것이 좋겠지만(개인적으로 선호함),
Java/Spring에서만 코드를 작성했을 때 비효율적인 처리를 할 때도 있어서(기존 코드 반복문 위주 사용)
이번에 일괄 처리 방식을 사용하도록 프로시저로 변환하는 작업을 하고 있다.
728x90
반응형