Heim > Backend-Entwicklung > C++ > Wie entferne ich seltsame Zeichen aus SQL Server-Varchar-Spalten mithilfe von C# und SQL CLR?

Wie entferne ich seltsame Zeichen aus SQL Server-Varchar-Spalten mithilfe von C# und SQL CLR?

Linda Hamilton
Freigeben: 2025-01-11 06:04:46
Original
849 Leute haben es durchsucht

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

Unerwünschte Zeichen aus SQL Server-Varchar-Spalten entfernen

Aus externen Quellen importierte Daten enthalten häufig unerwartete oder nicht standardmäßige Zeichen, die aus den Varchar-Spalten von SQL Server entfernt werden müssen. In diesem Artikel wird gezeigt, wie Sie dieses Problem mithilfe von C#- und SQL-CLR-Funktionen beheben können.

C#-Lösung mit regulären Ausdrücken

Die Engine für reguläre Ausdrücke von .NET bietet eine leistungsstarke Möglichkeit, damit umzugehen. Der folgende C#-Code verwendet Regex.Replace, um nicht druckbare Zeichen zu entfernen:

<code class="language-csharp">Regex.Replace(inputString, @"[^\u0000-\u007F]", string.Empty);</code>
Nach dem Login kopieren

SQL CLR-Funktion für erweiterte Funktionalität

Da SQL Server keine native Unterstützung für reguläre Ausdrücke bietet, erweitert die Erstellung einer SQL CLR-Funktion seine Möglichkeiten. Das folgende Beispiel, StackOverflowRegexReplace, führt reguläre Ausdrucksersetzungen durch:

<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>
Nach dem Login kopieren

So nutzen Sie diese Funktion:

  1. Kompilieren Sie den Code in eine StackOverflow.dll Assembly.
  2. Registrieren Sie die Assembly in Ihrer SQL Server-Datenbank mit CREATE ASSEMBLY.
  3. Erstellen Sie die SQL CLR-Funktion mit CREATE FUNCTION.
  4. Rufen Sie die Funktion mit Ihrer Eingabezeichenfolge, Ihrem regulären Ausdrucksmuster und Ihrer Ersatzzeichenfolge auf.

Beispielverwendung:

<code class="language-sql">SELECT [dbo].[StackOverflowRegexReplace] ('Hello Kitty Essential Accessory Kit', '[^\u0000-\u007F]', '')
-- Result: Hello Kitty Essential Accessory Kit</code>
Nach dem Login kopieren

Diese Methoden bereinigen effektiv nicht standardmäßige Zeichen aus Ihren SQL Server-Varchar-Spalten, verbessern die Datenintegrität und verhindern potenzielle Probleme.

Das obige ist der detaillierte Inhalt vonWie entferne ich seltsame Zeichen aus SQL Server-Varchar-Spalten mithilfe von C# und SQL CLR?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage