Maison > développement back-end > C++ > Comment nettoyer les caractères étranges des colonnes varchar de SQL Server à l'aide de C# et SQL CLR ?

Comment nettoyer les caractères étranges des colonnes varchar de SQL Server à l'aide de C# et SQL CLR ?

Linda Hamilton
Libérer: 2025-01-11 06:04:46
original
850 Les gens l'ont consulté

How to Clean Weird Characters from SQL Server varchar Columns Using C# and SQL CLR?

Suppression des caractères indésirables des colonnes varchar de SQL Server

Les données importées à partir de sources externes contiennent souvent des caractères inattendus ou non standard qui doivent être supprimés des colonnes varchar de SQL Server. Cet article montre comment résoudre ce problème à l'aide des fonctions C# et SQL CLR.

Solution C# utilisant des expressions régulières

Le moteur d'expressions régulières de .NET fournit un moyen puissant de gérer cela. Le code C# suivant utilise Regex.Replace pour éliminer les caractères non imprimables :

<code class="language-csharp">Regex.Replace(inputString, @"[^\u0000-\u007F]", string.Empty);</code>
Copier après la connexion

Fonction SQL CLR pour des fonctionnalités améliorées

Étant donné que SQL Server ne prend pas en charge les expressions régulières natives, la création d'une fonction SQL CLR étend ses capacités. L'exemple ci-dessous, StackOverflowRegexReplace, effectue des remplacements d'expressions régulières :

<code class="language-csharp">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>
Copier après la connexion

Pour utiliser cette fonction :

  1. Compilez le code dans un StackOverflow.dll assembly.
  2. Enregistrez l'assembly dans votre base de données SQL Server à l'aide de CREATE ASSEMBLY.
  3. Créez la fonction SQL CLR en utilisant CREATE FUNCTION.
  4. Invoquez la fonction avec votre chaîne d'entrée, votre modèle d'expression régulière et votre chaîne de remplacement.

Exemple d'utilisation :

<code class="language-sql">SELECT [dbo].[StackOverflowRegexReplace] ('Hello Kitty Essential Accessory Kit', '[^\u0000-\u007F]', '')
-- Result: Hello Kitty Essential Accessory Kit</code>
Copier après la connexion

Ces méthodes nettoient efficacement les caractères non standard de vos colonnes varchar SQL Server, améliorant ainsi l'intégrité des données et évitant les problèmes potentiels.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal