这个方法比较简单,用Microsoft.VisualBasic命名空间下强大的字符串处理函数就可以了
c#代码如下,编译为BigConvertor.dll
using
System;
using
System.Data.SqlTypes;
using
Microsoft.SqlServer.Server;
public
partial
class
UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction
]
public
static
SqlString
BigToGB(SqlString
inString)
{
if
(inString.IsNull) return
SqlString
.Null;
return
(Microsoft.VisualBasic.Strings
.StrConv(inString.Value,
Microsoft.VisualBasic.VbStrConv
.SimplifiedChinese,
0));
}
[Microsoft.SqlServer.Server.SqlFunction
]
public
static
SqlString
GBToBig(SqlString
inString)
{
if
(inString.IsNull) return
SqlString
.Null;
return
(Microsoft.VisualBasic.Strings
.StrConv(inString.Value,
Microsoft.VisualBasic.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
测试代码如下