sql函式 漢字拼音碼

2021-06-05 04:58:00 字數 3932 閱讀 5126

create or replace function to_piny(p_name in varchar2) return varchar2 as

v_compare varchar2(100);

v_return varchar2(4000);

function f_nlssort(p_word in varchar2) return varchar2 as

begin

return nlssort(p_word, 'nls_sort=schinese_pinyin_m');

end;

begin

for i in 1 .. nvl(length(p_name), 0) loop

v_compare := f_nlssort(substr(p_name, i, 1));

if v_compare >= f_nlssort('吖') and v_compare <= f_nlssort('驁') then

v_return := v_return || 'a';

elsif v_compare >= f_nlssort('八') and v_compare <= f_nlssort('簿') then

v_return := v_return || 'b';

elsif v_compare >= f_nlssort('嚓') and v_compare <= f_nlssort('錯') then

v_return := v_return || 'c';

elsif v_compare >= f_nlssort('咑') and v_compare <= f_nlssort('鵽') then

v_return := v_return || 'd';

elsif v_compare >= f_nlssort('妸') and v_compare <= f_nlssort('樲') then

v_return := v_return || 'e';

elsif v_compare >= f_nlssort('發') and v_compare <= f_nlssort('猤') then

v_return := v_return || 'f';

elsif v_compare >= f_nlssort('旮') and v_compare <= f_nlssort('腂') then

v_return := v_return || 'g';

elsif v_compare >= f_nlssort('妎') and v_compare <= f_nlssort('夻') then

v_return := v_return || 'h';

elsif v_compare >= f_nlssort('丌') and v_compare <= f_nlssort('攈') then

v_return := v_return || 'j';

elsif v_compare >= f_nlssort('咔') and v_compare <= f_nlssort('穒') then

v_return := v_return || 'k';

elsif v_compare >= f_nlssort('垃') and v_compare <= f_nlssort('擽') then

v_return := v_return || 'l';

elsif v_compare >= f_nlssort('嘸') and v_compare <= f_nlssort('椧') then

v_return := v_return || 'm';

elsif v_compare >= f_nlssort('拏') and v_compare <= f_nlssort('瘧') then

v_return := v_return || 'n';

elsif v_compare >= f_nlssort('筽') and v_compare <= f_nlssort('漚') then

v_return := v_return || 'o';

elsif v_compare >= f_nlssort('妑') and v_compare <= f_nlssort('曝') then

v_return := v_return || 'p';

elsif v_compare >= f_nlssort('七') and v_compare <= f_nlssort('裠') then

v_return := v_return || 'q';

elsif v_compare >= f_nlssort('亽') and v_compare <= f_nlssort('鶸') then

v_return := v_return || 'r';

elsif v_compare >= f_nlssort('仨') and v_compare <= f_nlssort('蜶') then

v_return := v_return || 's';

elsif v_compare >= f_nlssort('侤') and v_compare <= f_nlssort('籜') then

v_return := v_return || 't';

elsif v_compare >= f_nlssort('屲') and v_compare <= f_nlssort('鶩') then

v_return := v_return || 'w';

elsif v_compare >= f_nlssort('夕') and v_compare <= f_nlssort('鑂') then

v_return := v_return || 'x';

elsif v_compare >= f_nlssort('丫') and v_compare <= f_nlssort('韻') then

v_return := v_return || 'y';

elsif v_compare >= f_nlssort('帀') and v_compare <= f_nlssort('咗') then

v_return := v_return || 'z';

elsif v_compare = f_nlssort('1') then

v_return := v_return || 'y';

elsif v_compare = f_nlssort('2') then

v_return := v_return || 'r';

elsif v_compare = f_nlssort('3') then

v_return := v_return || 's';

elsif v_compare = f_nlssort('4') then

v_return := v_return || 's';

elsif v_compare = f_nlssort('5') then

v_return := v_return || 'w';

elsif v_compare = f_nlssort('6') then

v_return := v_return || 'l';

elsif v_compare = f_nlssort('7') then

v_return := v_return || 'q';

elsif v_compare = f_nlssort('8') then

v_return := v_return || 'b';

elsif v_compare = f_nlssort('9') then

v_return := v_return || 'j';

elsif v_compare = f_nlssort('0') then

v_return := v_return || 'l';

end if;

end loop;

return v_return;

end;

獲取拼音碼 sql函式

create function dbo f util getpinyincode str nvarchar 4000 returns nvarchar 4000 asbegin declare word nchar 1 py nvarchar 4000 set py while len str 0 ...

得到漢字的拼音碼

create function f getpy str nvarchar 4000 returns nvarchar 4000 as begin declare strlen int,re nvarchar 4000 declare t table chr nchar 1 collate chine...

漢子轉拼音碼SQL指令碼函式

漢子取拼音首字母 use cisdb pzhyy go object userdefinedfunction dbo fun getpy script date 12 25 2020 10 26 28 set ansi nulls on goset quoted identifier on goal...