SQLClr 切分中英文
来源:互联网 发布:红色警戒3起义时刻mac 编辑:程序博客网 时间:2024/05/17 07:55
注:必须先下载 sqlclr的dll文件, 配合脚本安装到库中。下载地址:点击打开链接
结果:
--请注意!!!!!--A. 请将 [master] 替换为当前库--B. 请将主程序集的dll路径替换为当前库中的路径--C. 出现错误:在 master 数据库中记录的数据库所有者 SID 与在数据库 'dbName' 中记录的数据库所有者 SID 不同。-- 应该通过使用 ALTER AUTHORIZATION 语句重置数据库 'db_Study' 的所有者来更正此情况。-- Sp_changedbowner 'sa',trueUSE [master]GO--1. 在SQL Server中启用CLRexec sp_configure 'clr enabled', 1 reconfigure; go --2. 在目标库 [master] 设置TRUSTWORTHY为ONALTER DATABASE [master] SET TRUSTWORTHY ON--3. 删除主程序集已有对象dbIF OBJECT_ID('[dbo].[Fun_DBA_IsMatch]') IS NOT NULLDROP FUNCTION [dbo].[Fun_DBA_IsMatch]GOIF OBJECT_ID('[dbo].[Fun_DBA_IsChinese]') IS NOT NULLDROP FUNCTION [dbo].[Fun_DBA_IsChinese]GOIF OBJECT_ID('[dbo].[Fun_DBA_GetHTML]') IS NOT NULLDROP FUNCTION [dbo].[Fun_DBA_GetHTML]GOIF OBJECT_ID('Fun_SplitChineseAndEnglish') IS NOT NULLDROP FUNCTION Fun_SplitChineseAndEnglishGO--4. 删除主程序集 SqlClrIF EXISTS(SELECT * FROM SYS.ASSEMBLIES WHERE NAME='SqlClr') DROP ASSEMBLY SqlClrGO--5. 创建主程序集: SqlClrCREATE ASSEMBLY SqlClr FROM 'D:\Tools\DBA\SqlClr\SqlClr.dll' WITH PERMISSION_SET = UNSAFEGO-- =============================================-- Author:yenange-- Create date: 2014-11-25-- Description:正则表达式匹配-- =============================================CREATE FUNCTION [dbo].[Fun_DBA_IsMatch] ( @source AS NVARCHAR(MAX), --要匹配的文本 @pattern AS NVARCHAR(200), --进行匹配的正则表达式@option INT=3 --正则表达式匹配选项,1为忽略大小写,2为多行匹配,3为忽略大小写且多行匹配) RETURNS BIT AS EXTERNAL NAME [SqlClr].[SqlClr.SqlCLR].[IsMatch]; GO -- =============================================-- Author:yenange-- Create date: 2014-11-25-- Description:判断字符串是否为中文-- =============================================CREATE FUNCTION [dbo].[Fun_DBA_IsChinese] ( @source AS NVARCHAR(MAX) --要匹配的文本) RETURNS BIT AS EXTERNAL NAME [SqlClr].[SqlClr.SqlCLR].[IsChinese]; GO -- =============================================-- Author:yenange-- Create date: 2016-10-20-- Description:根据Url获取html-- =============================================CREATE FUNCTION [dbo].[Fun_DBA_GetHTML] ( @url AS NVARCHAR(MAX) --url) RETURNS NVARCHAR(MAX) AS EXTERNAL NAME [SqlClr].[SqlClr.SqlCLR].[Fun_GetHTML]; GOIF OBJECT_ID('Fun_SplitChineseAndEnglish') IS NOT NULLDROP FUNCTION Fun_SplitChineseAndEnglishGO-- =============================================-- Author:yenange-- Create date: 2014-11-25-- Description:切分中英文-- =============================================CREATE FUNCTION [dbo].Fun_SplitChineseAndEnglish ( @source AS NVARCHAR(MAX) --要匹配的文本) RETURNS @r TABLE(rowNum INT IDENTITY(1,1) PRIMARY KEY,string NVARCHAR(max),isChinese BIT) ASBEGINDECLARE @single NCHAR(1),@rowNum INTWHILE len(@source)>0BEGINSET @single=substring(@source,1,1)SELECT @rowNum=isnull(MAX(rowNum),0) FROM @rIF dbo.Fun_DBA_IsChinese(@single)=1BEGINIF EXISTS(SELECT * FROM @r WHERE rowNum=@rowNum AND isChinese=1)UPDATE @r SET string=string+@single WHERE rowNum=@rowNumELSEINSERT INTO @r (string,isChinese) VALUES(@single,1)ENDELSEBEGINIF EXISTS(SELECT * FROM @r WHERE rowNum=@rowNum AND isChinese=0)UPDATE @r SET string=string+@single WHERE rowNum=@rowNumELSEINSERT INTO @r (string,isChinese) VALUES(@single,0)ENDSET @source=SUBSTRING(@source,2,LEN(@source))ENDRETURNENDGO
示例代码:
DECLARE @s NVARCHAR(MAX)SET @s='被子植物门 Angiospermae双子叶植物纲 Dicotyledoneae原始花被亚纲 Archichlamydeae伞形目 Umbelliflorae五加科 Araliaceae多蕊木族 PLERANDREAE五加属 Acanthopanax五加组 Sect. Acanthopanax'SELECT * FROM dbo.Fun_SplitChineseAndEnglish(@s)
结果:
阅读全文
0 0
- SQLClr 切分中英文
- 使用IKAnalyzer实现的中英文混合切分
- 什么是SQLCLR
- SQLCLR(一)入门
- SQLCLR(三)触发器
- SQLCLR(五)聚合
- SQLCLR(三)触发器
- SQLCLR(一)入门
- SQLCLR Tips: 配置数据库使其支持SQLCLR
- SQLCLR Tips: 查询SQLCLR状态的另一方法
- SQLCLR Tips: 我们的第一个SQLCLR示例
- SQLCLR(四)用户定义类型UDT
- SqlClr中如何引用更多的dll
- SQLClr——根据url获取html
- 程序切分
- 切分窗口
- 窗口切分
- 窗口切分
- linux >&的作用
- 从赌博引发的思考
- python Django 搭建简单的个人博客网站(一)
- Activemq消息离奇被消费
- java操作sqlite
- SQLClr 切分中英文
- HTTP 协议详解
- 高效学习办公
- STL的string的基本操作
- AMQ在Servlet3.0下出现的问题
- 美团codeM资格赛 数码
- IP高精度街道级定位问题研究
- AirSim- 相关软件安装及创建新的unreal工程
- Field 'id' doesn't have a default value