汉字转拼音的存储过程
create or replace function GetPinYin(Keyword in varchar2) return varchar2 as
i number;
j number;
PinYin varchar2(500);
Temp varchar2(10);
TempStr varchar2(2);
--oracle处理中英文混合字符串的bug,因此函数中采用在任何字符串前添加一个★号来强制oracle把此字符串当作双字节来处理
begin
i := 1;
j := Length('★' || Keyword);
PinYin := '';
while i <= j LOOP
tempStr := substr('★' || KeyWord, i, 1);
select hzpy --如果换成substr(HZPY, 1, 1)则是取首字母,嘿嘿
INTO Temp
from t_Pinyin
Where Num =
(select max(num) from t_Pinyin Where Num <= ASCII(TempStr));
Temp := Replace(Temp, '*', TempStr);
Temp := Replace(Temp, '★', '');
PinYin := PinYin || Temp;
i := i + 1;
End loop;
return(PinYin);
end GetPinYin;
这个是FOR ORACLE的版本
有没有高手能帮忙重写成MS-SQL 版本啊 多谢了