利用 .NET Framework 內建的 Microsoft.VisualBasic.Strings.StrConv 方法,可輕鬆在 SQL Server 中實作繁簡體中文雙向轉換,無需自行建立對照表。
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 Strings.StrConv(inString.Value, VbStrConv.SimplifiedChinese, 0);
}
[SqlFunction]
public static SqlString GBToBig(SqlString inString)
{
if (inString.IsNull) return SqlString.Null;
return Strings.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'簡體與繁體文的轉換');
-- 結果:簡體與繁體文的轉換
Microsoft.VisualBasic 參考。