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>
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>
Pour utiliser cette fonction :
StackOverflow.dll
assembly.CREATE ASSEMBLY
.CREATE FUNCTION
.Exemple d'utilisation :
<code class="language-sql">SELECT [dbo].[StackOverflowRegexReplace] ('Hello Kitty Essential Accessory Kit', '[^\u0000-\u007F]', '') -- Result: Hello Kitty Essential Accessory Kit</code>
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!