利用 `Microsoft.VisualBasic.Strings.StrConv` 內建 `VbStrConv.SimplifiedChinese` / `TraditionalChinese` 列舉,極簡實作繁簡轉換 CLR 純量函數。
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);
}
}
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'簡體與繁體文的轉換'); -- 簡體與繁體文的轉換