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...