首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server CLR 繁簡中文轉換函數:借用 Visual Basic StrConv 實作

     編輯:關於SqlServer

利用 `Microsoft.VisualBasic.Strings.StrConv` 內建 `VbStrConv.SimplifiedChinese` / `TraditionalChinese` 列舉,極簡實作繁簡轉換 CLR 純量函數。

C# 程式碼


using System; using System.Data.SqlTypes; using Microsoft.SqlServer.Server; using Microsoft.VisualBasic;

public partial class UserDefinedFunctions
{
    [SqlFunction]
    public static SqlString BigToGB(SqlString inString)
    {
        if (inString.IsNull) return SqlString.Null;
        return StrConv(inString.Value, VbStrConv.SimplifiedChinese, 0);
    }

    [SqlFunction]
    public static SqlString GBToBig(SqlString inString)
    {
        if (inString.IsNull) return SqlString.Null;
        return StrConv(inString.Value, VbStrConv.TraditionalChinese, 0);
    }
}

部署 T-SQL


CREATE ASSEMBLY BigConvertor FROM 'E:/sqlclrdata/BigConvertor.dll' WITH PERMISSION_SET = UNSAFE;
GO
CREATE FUNCTION dbo.xfn_BigToGB (@value NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) AS EXTERNAL NAME BigConvertor.[UserDefinedFunctions].BigToGB;
GO
CREATE FUNCTION dbo.xfn_GBToBig (@value NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) AS EXTERNAL NAME BigConvertor.[UserDefinedFunctions].GBToBig;
GO

測試


SELECT dbo.xfn_GBToBig(N'簡體與繁體文的轉換'); -- 簡體與繁體文的轉換
SELECT dbo.xfn_BigToGB(N'簡體與繁體文的轉換'); -- 簡體與繁體文的轉換

注意事項

  • 需引用 `Microsoft.VisualBasic.dll`,編譯目標 .NET Framework 2.0/3.5/4.x 皆可。
  • 組件權限設為 `UNSAFE` 因呼叫非受控程式碼;生產環境建議簽署強名稱並建立非對稱金鑰登入。
  • 轉換品質依賴 VB 內建對照表,涵蓋常用字彙,極少數異體字可能不轉換。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved