ホームページ > バックエンド開発 > 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 列から異常な文字を削除します

背景:

特定の非標準文字、特に発音記号の付いた文字 (帽子付きの a など) は、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 クラス ライブラリ プロジェクトを作成する
  • 正規表現を使用して Replace 関数を実装します
  • プロジェクトをビルドし、アセンブリを 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート