Mengatasi Aksara Tidak Dijangka dalam SQL Server VARCHAR Lajur
Artikel ini menangani isu biasa aksara yang tidak diingini yang muncul dalam lajur SQL Server VARCHAR, selalunya berpunca daripada import CSV. Kami akan meneroka penyelesaian di kedua-dua pangkalan data dan peringkat aplikasi C#, bersama-sama dengan langkah pencegahan untuk sumber CSV.
Penyelesaian Pangkalan Data menggunakan SQL CLR
Fungsi terbina dalam SQL Server tidak mempunyai keupayaan ekspresi biasa yang mantap. Walau bagaimanapun, dengan memanfaatkan SQL CLR (Common Language Runtime), kami boleh menyepadukan kuasa kelas Regex
.NET. Fungsi SQL CLR, Replace
, boleh dibuat dalam Visual Studio:
<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>
Fungsi ini membolehkan anda menggunakan ungkapan biasa terus dalam pertanyaan SQL anda untuk mengalih keluar aksara yang tidak diingini.
Penyelesaian Aplikasi C#
Sebagai alternatif, pembersihan aksara boleh dikendalikan dalam aplikasi C# anda menggunakan fungsi ekspresi biasa .NET:
<code class="language-csharp">Regex.Replace(s, @"[^\u0000-\u007F]", string.Empty);</code>
Coretan kod ini mengalih keluar sebarang aksara di luar julat ASCII asas.
Mencegah Masalah di Sumber CSV
Langkah proaktif di sumber data CSV adalah penting untuk mengelakkan isu ini daripada berulang. Pertimbangkan langkah ini:
Dengan melaksanakan penyelesaian dan langkah pencegahan ini, anda boleh mengurus dan menghapuskan aksara yang tidak diingini dengan berkesan daripada lajur SQL Server VARCHAR anda.
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Watak Tidak Dijangka daripada SQL Server VARCHAR Lajur?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!