


MS SQL Server 2000 中文模糊搜尋存儲過程及函數
這些存儲過程/函數可以在 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、數據庫、存儲過程、函數
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解