SQL 2005 CLR 函数实现简繁转换功能

   微软的一个Microsoft Visual Studio International Pack v1.0,里面就有中文字处理功能,还比较丰富,这里只用简繁转换。Microsoft Visual Studio International Pack v1.0的下载地址:http://download.microsoft.com/download/5/7/3/57345088-ACF8-4E9B-A9A7-EBA35452DEF2/vsintlpack1.zip。解压之后安装CHTCHSConv.msi,安装之后新建一个类库类目,添加对Traditional Chinese to Simplified Chinese Conversion Library and Add-In Tool引用。引入Microsoft.SqlServer.Server;
Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;
命名空间。

 

 using Microsoft.SqlServer.Server;
using Microsoft.International.Converters.TraditionalChineseToSimplifiedConverter;

namespace IMELSChineseConverter
{
    public class MelsChineseConverter
    {
        [SqlFunction(DataAccess = DataAccessKind.None)]
        public static string Convert(string text, string Direction)
        {
            string ctext = string.Empty;
            if (Direction.ToLower() == "s2t")
            {
                ctext = ChineseConverter.Convert(text, ChineseConversionDirection.SimplifiedToTraditional);
            }
            else if(Direction.ToLower() == "t2s")
            {
                ctext = ChineseConverter.Convert(text, ChineseConversionDirection.TraditionalToSimplified);
            }
            return ctext;
        }
    }
}

 

 

这里要把这个功能集成到SQL2005里去,就要用到SQL2005的CLR集成。现在我们来启用SQL2005的CLR集成:

开始--所有程序--Microsoft SQL Server 2005--配置工具--SQL Server 外围应用配置器--功能的外围应用配置器--CLR集成--启用CLR集成。

之后我们给SQL2005添加这个程序集,假如我们要为DataBaseTest这个数据库来增加此程序集,

 

在SQL里执行如下语句

 

ALTER DATABASE [DataBaseTest] SET TRUSTWORTHY ON
create assembly IMELSChineseConverter from 'D:/SqlCLR/IMELSChineseConverter.dll' WITH PERMISSION_SET = UNSAFE

 

 

然后我们再建立一个SQLFunction来应用这个程序

USE [DataBaseTest]
GO
CREATE FUNCTION [dbo].[MelsChineseConverter](@text [nvarchar](max), @Direction [nvarchar](20))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [IMELSChineseConverter].[IMELSChineseConverter.MelsChineseConverter].[Convert]

 

 

现在我们就可以应用这个函数来进行简繁转换了

SELECT [dbo].[MelsChineseConverter]('中国','s2t')

 

From:http://wlcxx98.javaeye.com/blog/502633

USE [DataBaseTest]

GO

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值