根據漢字的首字母轉換成拼音 oracle

2021-06-05 18:28:13 字數 1502 閱讀 3332

--建立函式

create function fun_getpy(@str nvarchar(4000))

returns nvarchar(4000)

as begin

declare @word nchar(1),@py nvarchar(4000)

set @py=''

while len(@str)>0

begin

set @word=left(@str,1)

--如果非漢字字元,返回原字元

set @py=@py+(case when unicode(@word) between 19968 and 19968+20901

then (select top 1 py from (

select 'a' as py,n'驁' as word

union all select 'b',n'簿'

union all select 'c',n'錯'

union all select 'd',n'鵽'

union all select 'e',n'樲'

union all select 'f',n'鰒'

union all select 'g',n'腂'

union all select 'h',n'夻'

union all select 'j',n'攈'

union all select 'k',n'穒'

union all select 'l',n'鱳'

union all select 'm',n'旀'

union all select 'n',n'桛'

union all select 'o',n'漚'

union all select 'p',n'曝'

union all select 'q',n'囕'

union all select 'r',n'鶸'

union all select 's',n'蜶'

union all select 't',n'籜'

union all select 'w',n'鶩'

union all select 'x',n'鑂'

union all select 'y',n'韻'

union all select 'z',n'咗'

) t

where word>=@word collate chinese_prc_cs_as_ks_ws

order by py asc) else @word end)

set @str=right(@str,len(@str)-1)

end

return @py

end

--根據s_person表中的name(漢語名字)字段更新spell(漢語拼音)字段

update s_person set spell= dbo.fun_getpy(name)

SQL 漢字轉換拼音首字母

create function whk fun getpy str nvarchar 4000 returns nvarchar 4000 asbegin declare word nchar 1 py nvarchar 4000 set py while len str 0 begin set w...

oracle漢字轉換成拼音首字母和五筆首字母

1 轉成拼音首字母 這個很多我也是網上覆制使用的 create or replace function f trans pinyin capital p name in varchar2 return varchar2 as v compare varchar2 100 v return varch...

漢字轉拼音首字母

public string hz2py string hz 獲得漢字的區位碼 else if tmp 45253 tmp 45760 else if tmp 47761 tmp 46317 else if tmp 46318 tmp 46825 else if tmp 46826 tmp 47009...