您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

MS SQL Server 2000 中文模糊搜寻存储过程及函数

添加时间:2013-4-9 15:49:07  添加: 思海网络 

这些存储过程/函数可以在 MS SQL Server 2000 里使用,包含两组存储过程, 这两组函数的功能相同, 只是适用的汉字内码范围不同。
这些存储过程及函数支持 GBK (大陆简体中文及繁体中文) 和 BIG5 内码 (台湾及香港等的繁体中文)
这些函数将直接用在 SQL 语句里, 使用非常方便。
可以按照含有读音相近的文字进行查找, 可以处理多音字, 可以查找含有某个相近读音的字的记录, 在查找姓名时特别有用。
这些存储过程全部用 C++ Builder 编写, 并且汉字读音全部由 C++ 处理, 效率比较高, 比汉字读音储存在数据库里用 SQL 查询快很多

【授权方式】
1.本存储过程为免费软件(Freeware), 可以免费使用.
2.如果你(无论你代表个人还是实体)要发布软件或者作为商业用途, 这个软件(存储过程/函数)必须作为你的软件的功能的一部分,
不能单独发布和出售本软件(存储过程), 也不能以这个软件制作一个类似功能的软件(存储过程或函数等)来发布.
3.这个授权仅授权给你(无论你代表个人还是实体), 你不能再次授权给别人进行授权和发布.

【使用方法】
具体参数说明参考安装方法里面的 SQL 语句

得到名字的读音编码 (GBK)
select name,dbo.fn_cncode(name,8) from table1搜寻所有名字含有与'小宝'读音相近的记录, 不区分 Zh Ch Sh 与 z c s (GBK)
select * from table1 where dbo.fn_cnlike(name,'小宝',9)<>0
得到名字的读音编码 (BIG5)
select name,dbo.fn_cncode(name,0) from table1
搜寻所有名字含有与'小寶'读音相近的记录, 不区分 ㄓㄔㄕ 与 ㄗㄘㄙ (BIG5)
select * from table1 where dbo.fn_cnlike(name,'小寶',1)<>0
【安装方法】
1.把动态链接库 VictorMsUa.dll 复制到 MS SQL Server 的 Binn 文件夹。
默认位置为 C:\Program Files\Microsoft SQL Server\MSSQL\Binn
2.通过执行 SQL 语句注册存储过程,这些存储过程必须在 Master 数据库里面注册。
打开 Master 数据库,然后执行下面 SQL 语句
EXEC sp_addextendedproc 'xp_getspcode' , 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_gbksndlike' , 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_getchinesecode', 'VictorMsUa.dll'
EXEC sp_addextendedproc 'xp_chinesesndlike', 'VictorMsUa.dll'
3.在用户数据库里面创建对应的函数
打开用户数据库,然后执行下面的 SQL 语句
-- GBK 编码, 支持繁体中文和简体中文
-- str1: 汉字字符串, 返回值: 拼音编码 (双拼格式)
CREATE FUNCTION fn_getspcode (@str1 VARCHAR(8000))
RETURNS CHAR(1024) AS
BEGIN
  DECLARE @sp CHAR(1024)
  EXEC master.dbo.xp_getspcode @str1, @sp OUTPUT
  RETURN @sp
END
go
-- GBK 编码, 支持繁体中文和简体中文
-- sstr 和 ssub 为汉字字符串, 从 sstr 里面按照读音相近规则查找 ssub
-- options: 0: 一般选项, 1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括1和2 (GBK)
CREATE FUNCTION fn_gbksndlike (@sstr VARCHAR(8000), @ssub VARCHAR(8000), @options SMALLINT)
RETURNS SMALLINT AS
BEGIN
  DECLARE @v SMALLINT
  EXEC master.dbo.xp_gbksndlike @sstr, @ssub, @options, @v OUTPUT
  RETURN @v
END
go
-- 支持 BIG5 和 GBK 两种汉字编码, 支持繁体中文和简体中文, 通过 options 参数设定
-- str1: 汉字字符串, 返回值: 拼音编码 (双拼格式)
-- options: 0: BIG5 编码, 8: GBK 编码
CREATE FUNCTION fn_cncode (@str1 VARCHAR(8000), @options SMALLINT)
RETURNS CHAR(1024) AS
BEGIN
  DECLARE @sp CHAR(1024)
  EXEC master.dbo.xp_getchinesecode @str1, @options, @sp OUTPUT
  RETURN @sp
END
go
-- 支持 BIG5 和 GBK 两种汉字编码, 支持繁体中文和简体中文, 通过 options 参数设定
-- sstr 和 ssub 为汉字字符串, 从 sstr 里面按照读音相近规则查找 ssub
-- options: BIG5: 0: 一般选项, 1:不区分Zh Ch Sh 与 z c s , 2:任意順序, 3:包括1和2 (GBK)
-- GBK : 8: 一般选项, 9:不区分Zh Ch Sh 与 z c s , 10:任意順序, 11:包括1和2 (GBK)
CREATE FUNCTION fn_cnlike (@sstr VARCHAR(8000), @ssub VARCHAR(8000), @options SMALLINT)
RETURNS SMALLINT AS
BEGIN
  DECLARE @v SMALLINT
  EXEC master.dbo.xp_chinesesndlike @sstr, @ssub, @options, @v OUTPUT
  RETURN @v
END
go

关键字:SQL Server、数据库、存储过程、函数

分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站