ホームページ > バックエンド開発 > C++ > SQL Server の VARCHAR 列から予期しない文字を削除する方法

SQL Server の VARCHAR 列から予期しない文字を削除する方法

Susan Sarandon
リリース: 2025-01-11 06:39:41
オリジナル
926 人が閲覧しました

How to Remove Unexpected Characters from SQL Server VARCHAR Columns?

SQL Server VARCHAR 列内の予期しない文字のアドレス指定

この記事では、CSV インポートに起因することが多い、SQL Server の VARCHAR 列に不要な文字が表示されるという一般的な問題に取り組みます。 CSV ソースの予防策とともに、データベースと C# アプリケーションの両方のレベルでのソリューションを検討します。

SQL CLR を使用したデータベース ソリューション

SQL Server の組み込み関数には、強力な正規表現機能がありません。 ただし、SQL CLR (共通言語ランタイム) を活用すると、.NET の Regex クラスの機能を統合できます。 SQL CLR 関数 Replace は、Visual Studio 内で作成できます。

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));
}
ログイン後にコピー

この機能を使用すると、SQL クエリ内で正規表現を直接使用して、不要な文字を削除できます。

C# アプリケーション ソリューション

または、.NET の正規表現機能を使用して、C# アプリケーション内で文字クレンジングを処理することもできます。

Regex.Replace(s, @"[^\u0000-\u007F]", string.Empty);
ログイン後にコピー

このコード スニペットは、基本的な ASCII 範囲外の文字を削除します。

CSV ソースでの問題を防ぐ

この問題の再発を防ぐには、CSV データ ソースでの事前の対策が重要です。 次の手順を検討してください:

  • 文字エンコーディング: データ パイプライン全体で一貫性のある適切な文字エンコーディング (UTF-8 や ANSI など) を確保します。
  • データ検査: メモ帳などのテキスト エディタを使用して、CSV ファイルに異常な文字がないか注意深く検査します。
  • Unicode 正規化: Unicode 正規化形式 (NFC または NFD) を調査して、文字の一貫性を確保します。
  • ツールの一貫性: 文字がさまざまなツールや環境 (PowerShell、SQL Server、CSV 生成ツールなど) 間で一貫して解釈されることを確認します。

これらのソリューションと予防策を実装することで、SQL Server の VARCHAR 列から不要な文字を効果的に管理し、削除できます。

以上がSQL Server の VARCHAR 列から予期しない文字を削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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