首页 > 数据库 > SQL Server > 正文

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

2024-08-31 00:49:04
字体:
来源:转载
供稿:网友
国内最大的酷站演示中心!

这些存储过程/函数可以在 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

 

下载 ms sql server 2000 中文模糊搜寻存储过程

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表