ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 汉字返回拼音,多音字使用[]返回每个读音。

汉字返回拼音,多音字使用[]返回每个读音。

原创 Linux操作系统 作者:sunnily 时间:2019-03-11 16:30:05 0 删除 编辑
create or replace function f_hanzi_to_pinyin
(v_hanzi nvarchar2) return varchar2 is
v_pinyin nvarchar2(1000);

m_length integer;
m_single_hanzi nvarchar2(2);
m_pinyin nvarchar2(50);
m_py_count integer;
begin
m_length:=length(v_hanzi);
v_pinyin:='';

if v_hanzi is null then
return '*';
end if;

for i in 1..m_length loop
m_pinyin:=null;
m_single_hanzi:=substr(v_hanzi,i,1);

if (ascii(m_single_hanzi) between 33 and 128) then
m_pinyin:=null;
else
declare
cursor c_py is
select s.pinyin
from t_py_char s
where s.hanzi like '%'||m_single_hanzi||'%';
begin
m_py_count:=0;
for r in c_py loop
m_pinyin:=m_pinyin||' '||r.pinyin;
m_py_count:=m_py_count+1;
end loop;
if m_py_count>1 then
m_pinyin:=' ['||trim(m_pinyin)||']';
end if;
exception
when others then
m_pinyin:='';
end;
end if;
v_pinyin:=v_pinyin||m_pinyin;
end loop;

return(trim(v_pinyin));
exception
when others then
return('*');
end ;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/77580/viewspace-212676/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2004-04-19

  • 博文量
    139
  • 访问量
    125830