> 백엔드 개발 > C++ > SQL Server VARCHAR 열에서 비정상적인 문자를 제거하는 방법은 무엇입니까?

SQL Server VARCHAR 열에서 비정상적인 문자를 제거하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-11 09:03:45
원래의
427명이 탐색했습니다.

How to Remove Unusual Characters from a SQL Server VARCHAR Column?

SQL Server VARCHAR 열에서 특이한 문자 제거

배경:

특정 비표준 문자, 특히 분음 부호가 있는 문자(예: 모자를 쓴 문자)는 SQL Server varchar 열에 저장됩니다. 이 문제는 .csv 데이터 원본 가져오기에 대한 제한된 제어로 인해 발생합니다.

해결책:

옵션 1: .NET 정규식 사용

C#에서는 정규식을 사용하여 이러한 문자를 제거할 수 있습니다. 아래와 같이 String.Replace 메서드를 사용할 수 있습니다.

<code class="language-csharp">Regex.Replace(s, @"[^\u0000-\u007F]", string.Empty);</code>
로그인 후 복사

옵션 2: SQL CLR 함수 생성

SQL Server는 기본적으로 정규식을 지원하지 않으므로 SQL CLR 함수를 만들 수 있습니다. 이를 위해서는 다음이 필요합니다:

  • Visual Studio에서 .NET 클래스 라이브러리 프로젝트 만들기
  • 정규 표현식을 사용하여 바꾸기 기능 구현
  • 프로젝트 빌드 및 SQL Server 데이터베이스에 어셈블리 추가
  • .NET 함수를 래핑하는 SQL CLR 함수 만들기

구현:

옵션 1:

<code class="language-csharp">Regex.Replace(inputString, @"[^\u0000-\u007F]", string.Empty);</code>
로그인 후 복사

옵션 2:

  • 다음 코드를 사용하여 StackOverflow라는 .NET 클래스를 만듭니다.
<code class="language-csharp">[SqlFunction(DataAccess = DataAccessKind.None, IsDeterministic = true, Name = "RegexReplace")]
public static SqlString Replace(SqlString sqlInput, SqlString sqlPattern, SqlString sqlReplacement)
{
    string input = (sqlInput.IsNull) ? string.Empty : sqlInput.Value;
    string pattern = (sqlPattern.IsNull) ? string.Empty : sqlPattern.Value;
    string replacement = (sqlReplacement.IsNull) ? string.Empty : sqlReplacement.Value;
    return new SqlString(Regex.Replace(input, pattern, replacement));
}</code>
로그인 후 복사
  • 프로젝트 빌드 및 SQL Server 데이터베이스에 어셈블리 추가
  • SQL CLR 함수 만들기:
<code class="language-sql">CREATE FUNCTION [dbo].[StackOverflowRegexReplace] (@input NVARCHAR(MAX),@pattern NVARCHAR(MAX), @replacement NVARCHAR(MAX))
RETURNS NVARCHAR(4000)
AS EXTERNAL NAME [StackOverflow].[StackOverflow].[Replace]
GO</code>
로그인 후 복사
  • 사용 예:
<code class="language-sql">SELECT [dbo].[StackOverflowRegexReplace] ('Hello Kitty Essential Accessory Kit', '[^\u0000-\u007F]', '')</code>
로그인 후 복사

위 내용은 SQL Server VARCHAR 열에서 비정상적인 문자를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿