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
반응형
'DB, SQL' 카테고리의 다른 글
[MSSQL] 문자열 중 마지막에 들어간 특정한 문자 이후 문자열을 모두 제거하는 방법 (2) | 2024.09.19 |
---|---|
SQL Server XML 사용법 알아보자. (1) | 2023.12.19 |
[MSSQL] 커서(Cursor) 사용법 및 예제 (0) | 2023.01.02 |
MySQL 8.x 버전 root 비밀번호 까먹었을 때, 분실했을 때 해결방법 (1) | 2022.12.04 |
H2 Database 설치 및 실행, 오류 해결 (1) | 2022.10.09 |