100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > Oracle任意字符串转换成拼音首字母简写

Oracle任意字符串转换成拼音首字母简写

时间:2019-05-31 00:00:02

相关推荐

Oracle任意字符串转换成拼音首字母简写

Oracle任意字符串转换成拼音首字母简写

需求目标

将“拼音简码”四个字转换成拼音首字母简写PYJM

实现代码

CREATE OR REPLACE FUNCTION FUN_GET_PYJM(P_NAME IN VARCHAR2) RETURN VARCHAR2 ASV_COMPARE VARCHAR2(100);V_RETURN VARCHAR2(4000);/* 创建人:gangma2创建时间:-08-21功能描述:任意字符串转换成拼音首字符简写,返回拼音简码函 */BEGINDECLARE--定义一个函数,通过NLSSORT来进行单个字符语言排序FUNCTION F_NLSSORT(P_WORD IN VARCHAR2) RETURN VARCHAR2 ASBEGINRETURN NLSSORT(P_WORD, 'NLS_SORT=SCHINESE_PINYIN_M');END;BEGINFOR I IN 1 .. LENGTH(P_NAME) LOOP--通过循环取每个字符,进行比较,确定该字符首字母拼音V_COMPARE := F_NLSSORT(SUBSTR(P_NAME, I, 1));IF V_COMPARE >= F_NLSSORT('吖') AND V_COMPARE <= F_NLSSORT('驁') THENV_RETURN := V_RETURN || 'A';ELSIF V_COMPARE >= F_NLSSORT('八') AND V_COMPARE <= F_NLSSORT('簿') THENV_RETURN := V_RETURN || 'B';ELSIF V_COMPARE >= F_NLSSORT('嚓') AND V_COMPARE <= F_NLSSORT('錯') THENV_RETURN := V_RETURN || 'C';ELSIF V_COMPARE >= F_NLSSORT('咑') AND V_COMPARE <= F_NLSSORT('鵽') THENV_RETURN := V_RETURN || 'D';ELSIF V_COMPARE >= F_NLSSORT('妸') AND V_COMPARE <= F_NLSSORT('樲') THENV_RETURN := V_RETURN || 'E';ELSIF V_COMPARE >= F_NLSSORT('发') AND V_COMPARE <= F_NLSSORT('猤') THENV_RETURN := V_RETURN || 'F';ELSIF V_COMPARE >= F_NLSSORT('旮') AND V_COMPARE <= F_NLSSORT('腂') THENV_RETURN := V_RETURN || 'G';ELSIF V_COMPARE >= F_NLSSORT('妎') AND V_COMPARE <= F_NLSSORT('夻') THENV_RETURN := V_RETURN || 'H';ELSIF V_COMPARE >= F_NLSSORT('丌') AND V_COMPARE <= F_NLSSORT('攈') THENV_RETURN := V_RETURN || 'J';ELSIF V_COMPARE >= F_NLSSORT('咔') AND V_COMPARE <= F_NLSSORT('穒') THENV_RETURN := V_RETURN || 'K';ELSIF V_COMPARE >= F_NLSSORT('垃') AND V_COMPARE <= F_NLSSORT('擽') THENV_RETURN := V_RETURN || 'L';ELSIF V_COMPARE >= F_NLSSORT('嘸') AND V_COMPARE <= F_NLSSORT('椧') THENV_RETURN := V_RETURN || 'M';ELSIF V_COMPARE >= F_NLSSORT('拏') AND V_COMPARE <= F_NLSSORT('瘧') THENV_RETURN := V_RETURN || 'N';ELSIF V_COMPARE >= F_NLSSORT('筽') AND V_COMPARE <= F_NLSSORT('漚') THENV_RETURN := V_RETURN || 'O';ELSIF V_COMPARE >= F_NLSSORT('妑') AND V_COMPARE <= F_NLSSORT('曝') THENV_RETURN := V_RETURN || 'P';ELSIF V_COMPARE >= F_NLSSORT('七') AND V_COMPARE <= F_NLSSORT('裠') THENV_RETURN := V_RETURN || 'Q';ELSIF V_COMPARE >= F_NLSSORT('亽') AND V_COMPARE <= F_NLSSORT('鶸') THENV_RETURN := V_RETURN || 'R';ELSIF V_COMPARE >= F_NLSSORT('仨') AND V_COMPARE <= F_NLSSORT('蜶') THENV_RETURN := V_RETURN || 'S';ELSIF V_COMPARE >= F_NLSSORT('侤') AND V_COMPARE <= F_NLSSORT('籜') THENV_RETURN := V_RETURN || 'T';ELSIF V_COMPARE >= F_NLSSORT('屲') AND V_COMPARE <= F_NLSSORT('鶩') THENV_RETURN := V_RETURN || 'W';ELSIF V_COMPARE >= F_NLSSORT('夕') AND V_COMPARE <= F_NLSSORT('鑂') THENV_RETURN := V_RETURN || 'X';ELSIF V_COMPARE >= F_NLSSORT('丫') AND V_COMPARE <= F_NLSSORT('韻') THENV_RETURN := V_RETURN || 'Y';ELSIF V_COMPARE >= F_NLSSORT('帀') AND V_COMPARE <= F_NLSSORT('咗') THENV_RETURN := V_RETURN || 'Z';ELSE--如果不能被转换返回原字符V_RETURN := V_RETURN || UPPER(SUBSTR(P_NAME, I, 1));END IF;END LOOP;RETURN V_RETURN;END;END;

实现效果

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。